Getting Useful Data From A Dirt Cheap RFID Reader

cheap-rfid-reader

[Aaron] was looking for a cheap RFID reader that had some easy to follow documentation and a standardized interface. Most everything he saw was pretty expensive, so he decided to buy a cheap $10 reader from eBay to see how easy it would be to work with.

The reader came with very little documentation, but [Aaron] did know that the device identifies itself as a USB keyboard, outputting scan tag data into a text editor. That functionality wasn’t incredibly useful, so he took it apart to see if he could interface with it in some other manner. Exposing the PCB revealed an unknown IC for which he could find no documentation, but the board did include some breakout pins, so [Aaron] started by probing those for data.

He tried reading the data in both a terminal program and with a logic analyzer, but nothing seemed to make a whole lot of sense. He turned the sampling rate of the sniffer down, and things started looking a little better. After comparing the data from the sniffer with known tag codes, he noticed that each digit had an offset of 39 applied, so he whipped up a bit of code to correct the numbers.

[Aaron] did a good amount of legwork to get usable data from the reader, but at a cost of $10 it can’t be beat. We certainly know what we’re going to be hunting for on eBay this afternoon…

21 thoughts on “Getting Useful Data From A Dirt Cheap RFID Reader

  1. I’ve just done a bit of decoding, the Data is sent in packets –

    189 – Start of Packet
    5 – Number of keypresses
    39 – USB Key Code for “0” 27 Hex
    39 – USB Key Code for “0” 27 Hex
    30 – USB Key Code for “1” 1E Hex
    33 – USB Key Code for “4” 21 Hex
    38 – USB Key Code for “9” 26 Hex
    5 – ??? End of packet / Check Digits
    3 – ??? End of packet / Check Digits

    (delay of 100 ms)

    189 – Start of Packe
    6 – Number of Keypresses
    31 – USB Key Code for “2” 1F Hex
    31 – USB Key Code for “2” 1F Hex
    32 – USB Key Code for “3” 20 Hex
    35 – USB Key Code for “6” 23 Hex
    36 – USB Key Code for “7” 24 Hex
    40 – USB Key Code for “Enter” 28 Hex
    5 – ??? End of packet / Check Digits
    ? – ??? End of packet / Check Digits

    Usb scan codes from http://www.quadibloc.com/comp/scan.htm

    1. Great sleuthing work there, it also brings up the question; could it be possible to inject codes from a microcontroller into the RFID board somehow to produce key presses on the USB keyboard output.

    1. It’s to do with sampling theorem. Once you start sampling at a rate that is inverse square of the input frequency, the signal becomes messy. Just need to back things off a little.

      You can always Google it for more info.

  2. Quite interesting. I had a quick look around and found that there is another cheap reader / door-opener available through ebay.

    It is called M236B. Does anyone have any experience with it? Apparently it is a standalone device.

  3. I recently bought one of these readers and I am extremely confused. What is the proper procedure for it to output data over USB? Windows finds it as a keyboard, however, after scanning a multitude of tags I have no data in Notepad. Is the red LED supposed to change to green? I can see from your teardown it is a bicolor LED, but mine never changes color, only beeps twice when I power it on. Any help would be appreciated, I would like to find out if I can use this reader for anything useful.

Leave a Reply to KoplimiCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.