A Linux-Based RFID Thing Finder

July 19th, 2012

Sometimes I have things nicely organized. Power adapters for radios in one drawer, for cameras in the next. And sometimes… not so much. Sometimes I’m not sure if things are in the basement or the attic. It seems like technology should be able to help solve this problem, but as far as I can tell, no such solution exists yet.

So I’m planning to build one.

Here’s my general idea. Feedback, of course, is welcome.

Each item to be tracked can have an RFID tag of some sort attached to it. These tags can be read by an RFID reader at a distance of somewhere between 1ft and 1m in typical conditions. The reader could then act as a proximity alert to an object being searched for – a “you’re close” beep, for instance.

That helps, but is only part of the battle. It doesn’t help if you don’t even know which room to look in. So the second part of the plan is that the RFID reader is constantly talking to an object database. Besides the obvious association between RFID tag IDs and object descriptions, the database will also capture background reads of RFID tags. Logged with accurate timestamps, we can then conjecture that RFID reads that occurred within a few seconds of each other are probably physically nearby. If boxes have RFID tags on them, then I can probably get a reasonable idea, down to a box or two, of which box that elusive book is in. If I further put tags on certain immovable physical locations in the house, such as every few feet along shelving, then these will also be captured in the background and hopefully associated with objects nearby, giving a good physical idea of where things are.

What’s more, the simple act of looking for things using the RFID reader would help keep the proximity tables up-to-date, since it could of course log the RFID tags it sees on the way. The only discipline required to keep this info current is to periodically hover nearby storage areas when moving things around.

I like this concept a lot. That doesn’t mean it’s necessarily simple.

Implementation requirements

  • The cost of tagging an item must be less than $0.25 each. Ideally it would be $0.10 or less. We’re talking hundreds or thousands of items here, so even the $2.50 RFID tags for sale on hobbyist sites are way too expensive. RFID tags in industrial bulk quantities are needed, and cheaply.
  • Read range must be at least 1ft, and ideally 3ft, and ideally even around as many obstacles as possible. Shorter than that and it can’t even take in a whole box without pulling things out.
  • Cost kept as reasonable as possible.
  • Must be simple and unobtrusive, requiring little manual effort or discipline to maintain current data. This is the reason for RFID instead of barcodes; barcodes require much more specific action (scan the bin, scan the item) rather then just turn on the scanner and wave it around a bit.

Software side

I’m envisioning the software being split into two components. One would run on an embedded system with the RFID reader. Its job is simple transmitting of scanned RFIDs to the server, receiving instructions from the server, and generating a tone if it’s in search mode and the item being searched is nearby.

On the server lies a database. The database would contain descriptions for the objects that are tagged (so that the tag ID can be looked up). It would also contain the timestamped scan logs.

I envision a simple CGI-based frontend to it that is mobile-friendly, so a laptop, phone, tablet, etc. could be the user interface for the thing – saving the cost of a display and input device by reusing what most people already have.

This is the part I feel most qualified to work on already.

Hardware

The first question is what kind of RFID tags to use. Optimizing for cost per tag, the 800/900MHz UHF tags (EPC gen 2) seem ideal. I have found them in costs approaching $0.10 per tag when bought in rolls of 500 or 1000 Avery RFID labels. That’s reasonable.

The RFID reader is the more complicated part. UHF RFID readers are a lot more costly than their HF or LF counterparts. So far, the cheapest solution I have found started with a post about an Arduino UHF reader. It used a SolidDigi UHF reader board with UART interface for $177. That same board is also available with a USB interface at the same cost.

There is also the need for an antenna. There is a small 5dBi one rated 0-50cm for $8, or a $100 8dBi version rated 1-6m designed for wall mounting. They sell these in kit form that include power adapter, USB cables, etc. as well. The kit with the small antenna runs $192, including reader board.

Next is the compute platform. A DreamPlug might work for this at $160, though both the cost and the power consumption (5VDC 3A) are high. A Raspberry Pi seems perfect, though for whatever reason seem to be backordered by months everywhere and don’t include wifi. The Pi is $35, and the USB wifi is another $30, plus a cheap SD card, so we’re around $80 of computing. The running total of the project, then, is at least $272. Add on provisions for batteries, some sort of case, etc. and we’re probably past the $300 mark. That’s a lot cheaper than the $1000 for handheld RFID readers.

The final item is tags. Bulk tags can be found in the $100 to $200 range, making the total cost of the project $400 to $500. Higher than I’d like, but providing some valuable experience building something.

Risks

There are a few major risks to the project. First among them is read distance. If it’s not long enough, the usefulness of the project will be low. Fortunately, $100 gets a more high-gain antenna and I’d only be out the $8 if the cheaper one doesn’t pan out. But that’s something of a cold comfort, as it’s another, well, $100.

Having a bunch of RFID hardware can be used for all sorts of other interesting things, though, so it could perhaps be reused or repurposed.

Another risk is that RFID collisions wouldn’t be handled as intelligently as I’d like, meaning that the read range required to be useful would activate so many tags that collision algorithms break down. I don’t know enough about RFID collision algorithms to know if this is a serious councern.

Categories: Hardware, Technology

Tags: Leave a comment

Comments Feed17 Comments

  1. Luca

    I think a major problem could be what kind of things you want to find because depending on the material RFID technology could not work.

    Reply

    John Goerzen Reply:

    Metal and liquid pose the most difficulty. This is indeed a risk, which I’m thinking of as part of the read range risk I discussed above. That said, I don’t think I really have any liquid items to tag, and perhaps can be creative enough with metal ones so that it’s not an issue.

    Reply

  2. Sebastian Hilbert

    Check out

    http://diuf.unifr.ch/drupal/softeng/projects/rfidlocator/

    They have some bits implemented already.

    Reply

    John Goerzen Reply:

    An interesting project. Their idea is to use fixed RFID readers, and thus passively monitor the progress of object throughout a building. This produces even less need for manual activity.

    On the other hand, it drives up the cost significantly, to the point where it is not really worth doing for a residential setting.

    Reply

  3. shivan

    Why not directly tag the rooms ? No more conjecture !

    Reply

    John Goerzen Reply:

    That’s what I mean by tagging locations within them. It would be even more precise than just a particular room.

    Reply

  4. Karl Wiberg

    Very cool idea.

    Cory Doctorow describes a very similar RFID-based system in his novel Makers (full text here: http://craphound.com/makers/Cory_Doctorow_-_Makers.html; search for “monte cristo” to Findus the first reference).

    Reply

    Karl Wiberg Reply:

    “find”

    That was an impressively creative spell-checker substitution…

    Reply

  5. Mark

    You might want to have a look at the Mele A2000 or the Mele A100 as a replacement for the raspberry pi or dreamplug. $70 resp. $65, wifi & case included, SATA adapter, 3x usb, vga, hdmi, spdif, wired ethernet.

    Reply

  6. Sven

    At least the hardware part sounds a lot like a worthwhile kickstarter project.
    But even if this would only result in a well documented diy project with an open source software solution, I would be very interested.

    Reply

  7. Sam

    Where did you find $0.10 UHF passive tags available in quasi-reasonably small quantities?

    Reply

  8. Jean Jordaan

    For the software side, the Smallest Federated Wiki sounds pretty close: http://wardcunningham.github.com/
    http://dorkbotpdx.org/blog/wardcunningham/remote_sensing_with_federated_wiki

    Reply

  9. Dooba

    I was thinking of doing this with our library books. But the books already have tags. Can those ones be used instead of tagging them all over again?

    One just need to enter the tag number into the reader (finder) and the readers beeps when it gets near the book.

    Reply

  10. Serge

    Any updates on this project?
    I’m trying to build something similar and was wondering if you were able to finish this.

    Reply

  11. Thomas

    Any update on this project? It’s exactly what I’m looking for.

    Reply

  12. John Goerzen

    I never really had time to work on it, I’m afraid.

    Reply

  13. Thomas

    How very sad :-) Thanks for the replay though! The guys over at innobec made an approach (http://www.innobec.com/en/blog/embedded-systems-and-m2m/rfid-based-asset-tracking-nodejs-and-mongodb) which ist quite interesting but as of now lacking the reader-to-gateway module.

    Anyhow, since you’re probably not interested in the project anymore, could you give me a hint on where you found the $ 0.10 tags? Thanks! :)

    Reply

Leave a comment

 

Feed

http://changelog.complete.org / A Linux-Based RFID Thing Finder