RFID as Storage

I'm thinking through a project and trying to sort out what the best approach would be.

What I'd like to do is have a portable RFID reader and a set of RFID cards. I want to associate a short audio file with each card and to have the reader play the sound when touched to the card.

The way I figure it there are two approaches to this:

1: Store the audio file, and some id data, on the RFID card itself, this would allow me to have multiple sets of cards with different information without ever having to load new data on the reader. However I don't know if RFID cards with those characteristics exist.

2: The RFID cards have an ID and the reader has a database with all the audio files and additional information for each card in the set. The downside here being that you would have to load new data sets for each different set of cards. Not entirely opposed to that but it'd be nice if I didn't have to deal with it.

Any thoughts on the best approach? I'm fairly novice at this.

It depends on what technology of "RFID" cards you want to use.

AFIK the normal cheap cards don't have any storage, they are just preprogrammed with a unique ID code.

The reader just reads this code.

If you want to store data on the card you'll need to use a newer technology e.g. Near Field, but this will cost you a lot more and AFIK this stuff is in its infancy for use with the Arduino.

Plus transferring the amount of data required to play a sound file, is going to take some time, not much time but some time, so there would be a delay, Plus.... The Arduino doesn't have much memory (generally 2k), so you'd need to store the sound file from the card in SD before finally playing it.

Another point to note is that the standard Arduino's e.g. using ATMega328 can't play audio files as they don't have a D2A converter, you'll need external hardware to both store and playback the sounds.

Overall, I'd suggest you just read the ID from the card, compare it with a list, and then tell the sound playback hardware e.g. MP3Shield to play the sound associated with that ID

Mifare PICC's can store data on its blocks. There is cheap module called RFID-RC522 (google for details) which uses Mifare's MFRC522 chip. And there is Arduino Library https://github.com/miguelbalboa/rfid works with it. There are Mifare PICCs about 1K to 4K. There is an example for reading/writing PICCs in my project http://forum.arduino.cc/index.php?topic=256260 here.

Even 4k is not much for a sound file unless its compressed, and I don't see an easy way to play compressed sounds.

Unless there are multiple readers, and you frequently want to change the sound associated with a particular card, I can't see the benefit of attempting to store the sound on the card.

Hello I'm new and I am also working with this module, the truth seems to be easy but here I found something that I found very interesting and I'm descritivo July and live in cali Colombia http://makecourse.weebly.com/week10segment1.html

Thank @julio625

I've just ordered one of those modules (from eBay) so the course info should be handy !


as mentioned.. I dont think the RFID cards/badges/key-fobs will have enough storage/space to store anything like audio.

You can store certain types of data in pre-determined areas on the card (chip)..

IMHO... you could use an Adafruit WaveShield (or similar)

and save multiple .wav files on the SD card and access/play back any one of them based on the card that has been 'scanned'.

you can even set certain variables on a .txt file and load them in your sketch to even extend your project further without having to pljg in your computer and upload a new sketch. the SD gives you storage for many .wav files.. and also the storage to put in a config type file to change/update small aspect of your code/program, again all without needing the Arduino IDE.. any old SD/microSD card reader gives you access to change the config file..or upload/save more .wav files (or change them out)..etc