Application of LIMESDR in NFC

This project contains a Software-Defined Radio (SDR) implementation for ISO 14443 Type A NFC/RFID communications. Specifically, it can eavesdrop and decrypt MIFARE Ultralight and Classic 1K communications and partially emulate them. It can also work with a Limesdr.

The reader is an RFID-RN522 Arduino module, interacting with MIFARE Ultralight and Classic tags. A wire wrapped into a coil acts as our antenna for the Limesdr SDR.

图片1

A wire wrapped into a coil acts as our antenna for the Limesdr SDR.


1.I implement in pure Software-Defined Radio a demodulator for NFC/RFID readers and tags operating in the 13.56 MHz frequency, which decodes radio waves into plaintext packets.
2.I test our implementation by eavesdropping on real MIFARE Classic 1K and Ultralight communications with an RFID reader using a home-made antenna and a Limesdr, successfully decoding any encrypted packets.
3.I additionally implement in software the emulation of both readers and tags, including encryption if necessary.

1 Like

Hi Mark,

That’s really interesting, I’d love to know more details if possible! I’m currently working on using the LimeSDR as a UHF RFID reader, using GNU Radio, using this library, SoapyUHD source and sink gnuradio blocks, through SoapySDR and SoapyLMS7. I’ve got around an 80% read rate (in conditions where the read rate should really be 100%), which I think is primarily due to too much round trip latency - after the tag first replies, the reader sometimes takes too long to understand the tag response and respond, which results in the tag timing out.

It looks like your approach is a bit different to mine though. I’ve not quite understood what’s going on; is the demodulation happening on the arduino or on a PC? Would you mind going into a bit more detail about your setup, in terms of from where to where the data goes and where it gets processed?

Thanks and regards,

DasSidG

Hi DasSidG,

I’m just starting to look into using the LimeSDR to read RFID. I was wondering what the current status of your project is. I noticed that you hadn’t experience the popping problems that others had with the Gen 2 UHF RFID library, but that you had experienced some latency issues that you fixed by digging into the SoapySDR code.

Do you have a current status and implementation of your project, possibly with some code and steps you’ve taken to get to where you are? I’m very new to SDR and am interested in using this as a project to expand upon the “LimeSDR made Simple” series.

Kind regards,
Joe

1 Like

Hi Joe,

As this project was for my masters thesis, I will soon be publishing my final report on this forum, along with some detail of the steps I took to reduce latency, as a separate complete forum post. I hope to have this ready some time within the next week or so, if that’s alright? I’ll try and remember to message you once I’ve finished the post.

Thanks and regards,

DasSidG

Hi DasSidG,

That would be fantastic. I would read it with great interest.

Much appreciated,
Joe

Dear Joe,

I’ve now put my post up here (apologies it was slightly delayed. The report is in the github link referred to it.

Thanks and regards,

DasSidG