6
Week 4 · Access control

125 kHz RFID

Your building fob isn't a tiny radio remote. It's a coil of wire that wakes up only when your reader feeds it power. This module reads, saves and emulates a fob you own — and shows why "RFID" and "Sub-GHz" live in completely different worlds.

⏱ 45 min Gear: a 125 kHz fob or card you own App: 125 kHz RFID

Goal

By the end of this module you can pick up a low-frequency access fob that belongs to you, read it on the Flipper, save it, and play it back from the device — and, just as important, explain to a friend why you have to hold it almost touching the reader instead of waving it from across the room.

Everything up to now has been Sub-GHz: remotes, gates and sensors that broadcast a little radio signal into the air on 315, 433.92 or 868 MHz. This module is a hard left turn. Low-frequency RFID at 125 kHz looks similar on the surface — you "read" a thing and "emulate" it — but the physics underneath is different enough that it deserves its own week. Get the mental model right here and Module 7's NFC will feel like a cousin, not a stranger.

A different kind of radio

"RFID" stands for radio-frequency identification. The name is honest but a little misleading, because the low-frequency version barely radiates at all. Here is the split you need to hold in your head:

Sub-GHz (Modules 1–5)

A remote has a battery. It transmits a signal that flies through the air as a real radio wave and can be picked up metres away. This is far-field radio — the wave leaves the antenna and keeps going on its own.

125 kHz RFID (this module)

A fob has no battery. It does nothing until a reader's coil is close enough to power it. This is near-field coupling — energy is shared between two coils almost touching, like a loose transformer, not a wave sailing across a room.

That one difference — battery versus no battery, far-field wave versus near-field coupling — explains almost everything else about how these tags behave, especially the tiny range.

Why the range is centimetres, not metres

125 kHz is a very low frequency. Run it through the wavelength formula from the primer, λ = c / f, and you get a wavelength of roughly 2.4 kilometres. A useful radiating antenna is a meaningful fraction of a wavelength; nobody is putting a kilometre-long antenna on a keyfob. So a 125 kHz tag doesn't try to radiate. Instead the reader and the tag each have a small coil, and they pass energy back and forth through the magnetic field between them. Magnetic coupling falls off ferociously with distance — far faster than a radio wave does — which is exactly why your fob works when it's kissing the reader and does nothing an inch further out. The short range isn't a flaw. It's the whole operating principle, and it's a feature: an attacker can't skim your coil from across the street the way they might sniff a Sub-GHz remote.

125 kHz
LF RFID carrier
~2.4 km
wavelength (λ = c/f)
a few cm
practical read range
no battery
tag is passive

How a passive tag answers

Picture two coils of wire facing each other. The reader (your Flipper, or the box by the door) drives an alternating current through its coil at 125 kHz. That creates a pulsing magnetic field. Bring the tag's coil into that field and the field induces a small current in it — the same trick that makes a transformer or a wireless phone charger work. The tag has no battery, but for as long as it's in the field it has just enough power to run its tiny chip.

Now the tag has to answer. It can't shout back with its own transmitter — it has no power source of its own. Instead it changes how much energy it draws from the reader's field, flicking that load on and off in a pattern. The reader feels those tiny tugs on its own coil and reads them out as ones and zeros. The tag never "broadcasts"; it modulates the reader's own field. That's why the tag can be so cheap and so thin, and why it only works up close.

Reader coil drives 125 kHz · powers the tag magnetic field (near-field) Tag coil no battery · answers by load gap: a few cm
Near-field coupling: the reader's coil both powers the tag and listens for the pattern the tag makes by tugging on the field.
i
The Flipper can play either role. As a reader it energises your fob and reads it. As an emulator it pretends to be the tag, tugging on a door reader's field the way your fob would. Same coil, two jobs.

What's actually on the tag

A 125 kHz tag doesn't store your name or your job title. It stores a short number, and the reader system at the door looks that number up in a database to decide whether to unlock. But there are several incompatible ways that number is laid out, and the Flipper has to recognise which one it's looking at. The three you'll meet most:

FamilyAlso calledWhat it carriesNotes
EM4100 EM-Marin A fixed 40-bit ID (often shown as 5 or 10 hex characters). The classic cheap blue fob and round token. Simplest and most common.
HID Prox H10301 (a 26-bit format) A facility code plus a card number. The grey "HID" clamshell cards in a lot of offices.
Indala Motorola Indala A vendor-specific ID layout. Older but still around in some buildings.

UID vs "facility code + card number"

Two different ways of thinking about the number are worth pulling apart, because they come up again in NFC next module:

UID
A unique identifier — one flat number that is the tag's identity. EM4100 works this way: the whole 40-bit value is the ID, and the door either knows it or doesn't.
FC + card #
Some formats, like HID's H10301, split the number into a facility code (which site or customer this card belongs to) and a card number (which person). A door tuned to facility code 42 ignores an otherwise-valid card stamped facility 7.

Neither layout is "encrypted" in any meaningful sense. A 125 kHz tag mostly just recites its number when powered. That simplicity is why these tags are cheap, and also why the security world moved on to the 13.56 MHz cards you'll meet in Module 7 — where at least some cards can hold keys and do real cryptography. Reading a 125 kHz ID is roughly as hard as reading a printed serial number: trivial. The security, such as it is, lives in the door's database, not on the tag.

!
"It read, but it says Unknown"If the Flipper energises a tag but can't name the protocol, it may show the raw data without a friendly label. That usually means the tag is a format the reader app doesn't decode, or it's a 13.56 MHz card you're holding to the wrong tool — those belong to the NFC app, not the 125 kHz one. Frequency first, always.

Read, Save, Emulate, Write

The 125 kHz RFID app has a simple loop, and it mirrors the Sub-GHz workflow you already know: capture something, keep it, play it back. Four verbs:

  1. Read. The Flipper energises the tag and tries to identify it. Hold the fob flat against the back of the Flipper — the coil is inside the case — and wait for it to lock on to a protocol and an ID.
  2. Save. Give the capture a name and store it on the SD card, exactly like a .sub file but for RFID. Now you have a reusable copy of that identity.
  3. Emulate. The Flipper becomes the tag. Held to a compatible reader, it presents the saved ID as if it were the original fob. This is the "does the door recognise it" test — on your own door.
  4. Write. The Flipper writes the saved ID onto a blank tag, producing a physical duplicate you can carry.

On the device the path looks like 125 kHz RFID → Read, then Saved → Emulate once you've stored one.

The T5577: a blank that can pretend to be anything

Reading and emulating live entirely on the Flipper. To make a real physical copy you need a writable tag, and the workhorse there is the T5577. Out of the factory a T5577 is a blank — a chip that can be configured to imitate other 125 kHz formats. Write an EM4100 ID to it and it behaves like an EM4100 tag; configure it for HID Prox and it presents that instead. That flexibility is why a single pack of T5577 fobs and cards can stand in for most of the low-frequency tags you'll encounter.

The idea to lock in: reading a tag captures its number; writing puts that captured number onto a blank so a copy exists in the world. Reading actively powers the tag and can copy sensitive identifying data. The second creates a working credential — which is precisely why the legal line matters, and why the only ID you should ever write to a blank is one you're entitled to duplicate.

✓
A cheap starter kit is a few T5577 cards and fobs plus one EM4100 tag you buy new. Now you can read a blank, write a made-up ID to it, read it back, and emulate it — a complete round trip with nothing but hardware you own outright.

Lab

Lab 6.1

Read, save and emulate your own fob

Gear: a 125 kHz fob or card you own (a fresh EM4100/T5577 training tag not enrolled in an access system)

  1. Open the 125 kHz RFID app and choose 125 kHz RFID → Read.
  2. Lay the fob flat against the back of the Flipper and hold still. The antenna coil is inside the case, so contact beats hovering.
  3. Watch the screen name a protocol (EM4100, HID Prox, Indala…) and show an ID. If it stays blank, reposition the fob and try again — coil alignment is fussy.
  4. Choose Save and give it a clear name like training-tag-01.
  5. Go to Saved, open your capture, and pick Emulate. The Flipper is now impersonating that tag.
  6. Hold the emulating Flipper to your own reader — the one the fob already opens. Confirm it behaves like the fob. Do not test this on any reader that isn't yours.
✓You've got it when: you can read your fob, see its protocol and ID on screen, save it, and emulate it back to your own reader — and you can say in one sentence why you had to hold everything almost touching.

The three RF worlds, side by side

Keep this table handy. It's the single most useful thing to memorise this week, because "which app do I even open?" starts with "which of these three am I holding?"

 Sub-GHz125 kHz RFID (LF)NFC (HF)
Frequency300–928 MHz
315 / 433.92 / 868
125 kHz13.56 MHz
Typical rangemetres to tens of metresa few centimetresa few centimetres
Powered?transmitter has a batterytag is passive (no battery)tag is passive (no battery)
How it worksfar-field radio wavenear-field magnetic couplingnear-field coupling
Typical useremotes, gates, sensors, TPMSold building fobs, prox cardsbank cards, transit, newer badges, phone tap-to-pay
Flipper appSub-GHz125 kHz RFIDNFC

The two right-hand columns look almost identical — both near-field, both a few centimetres, both passive tags. The difference is the frequency and, as you'll see next module, how much brains the tag has. Sub-GHz is the odd one out: it's the only column that's a real radio wave with a real battery behind it.

Going deeper

Why can't I read my hotel key or new office badge with the 125 kHz app?

Because it's almost certainly not a 125 kHz tag. Most hotel keys and modern access badges are 13.56 MHz cards — a different frequency, a different app (NFC), covered in Module 7. The clue is in the read: hold it to the 125 kHz app and you get nothing, because that app's coil is running at the wrong frequency to wake the card up. Frequency is the first fork in every RFID decision.

Is reading a tag "hacking"? It felt too easy.

Reading a 125 kHz ID is about as sophisticated as reading a barcode. The tag is designed to announce its number to anything that powers it. That's the point of the technology and the reason it's cheap. The "security" was always meant to live in the door controller's list of allowed numbers, not in the tag being hard to read. Understanding that is more valuable than any single capture — it's why serious access control has moved to cards that can actually keep a secret.

What's the difference between Emulate and Write, really?

Emulate is temporary and lives on the Flipper: while the app runs, the device pretends to be the tag, and when you leave the screen it stops. Write is permanent and lives on a blank: you burn the ID onto a physical T5577 and now a second working tag exists that you can hand to someone or drop in a drawer. Emulate is a test; write is a duplicate. Treat the second with the seriousness a real key deserves.

Check yourself

Verify the details

Read the primary sources: Flipper: LF RFID. Course review: 10 September 2026.