RFID audio book reader for my nearly blind grandfather

An RFID controlled audio book reader to help the visually impaired enjoy audio books. Already in use by my nearly blind grandfather.

Similar projects worth following
I built this project to help my 93 year old grandfather, who suddenly became nearly blind, enjoy audio books. He uses it every day and averted the onset of a depression.

I built it because of the shortcomings of devices like iPods which are nearly impossible to use without good vision, and the existing solutions that either have a big learning curve, or read books in a robotic voice.

My solution uses DVD cases that contain an RFID card and have the title printed in large on the front. By using objects the size of a book, and only one book per case, books remain as tangible objects as the books my grandfather was used to.

The player is powered by a Raspberry Pi and keeps track of elapsed time for each book, so when listening to multiple books, or books and music, going back to a book will resume playback where it was previously stopped.

Last year, when visiting my family back home in Holland, I also stopped by my grand-parents. My grand-father, now 93 years old, had always been a very active man. However, during the presceding couple of months, he'd gone almost completely blind and now spent his days sitting in a chair. Trying to think of something for him to do, I suggested he try out audio books. After finally convincing him -- he said audio books were for sad old people -- that listening to a well performed recording is actually a wonderful experience, I realized the problem of this idea.

The problem with audio devices and the newly blind.

After my first impulse to jump up and go buy him an iPod Touch, I soon realized that, to use an iPod, or any audio device for that matter, one needs to be able to see the tiny controls. So I started looking at existing audio book solutions for the blind. A couple of things exist, but this market seems to be mainly targeted at people that still have a whole life of being blind ahead of them and are willing to invest time into learning very specific technologies. However, this was not my grand-father's situation. I worried that he would lose his motivation (of which he didn't have much left anyway at that point), so I needed to come up with something better. And since I hadn't found anything suitable that I could go out and buy, I would need to build it myself.


First of all, of course, whatever I was going to build needed to have an interface that didn't require (much) vision. Second, the controls needed to be intuitive and not require learning any completely new concepts. And last, if my grandfather paused a book, for however long, it would need to continue where he left off, even if the player had been without power.

I will describe in more detail below, but I ended up building a player that used my grandfathers very limited vision. However, it could easily be adapted for someone able to read braille. The player is built using a box the size of a 3 or 4 DVD boxes stacked on top of each other. Each audio book that is stored on the reader has a corresponding DVD box with the title of the book printed in very large letters on the front. When a "book" is placed on top of the reader, the reader starts playing the book. The reader has four large, bright colored buttons on the front with the following functions: pause, rewind 20 seconds, and two buttons that control volume.

The used technologiesRaspberry Pi

At the heart of the player is a Raspberry Pi running Debian Wheezy. Getting Linux to play audio is very easy, so getting to audio books to play wasn't that much of a challenge. For playing audio, I used mpd, which is a daemon that runs a server that plays audio and that is controlled by sending it commands over TCP, a very reliable and easy to use network protocol.

What makes the Raspberry Pi interesting is not only that it's a tiny computer that runs Linux, but also that it has lots of I/O pins let you connect anything you can imagine (buttons, LEDs, but also serial communication devices). When writing a program for the Raspberry Pi, you'll be able to read from these pins and change the behaviour of your program accordingly. The small program I wrote to control the audio book player (available here) uses these pins to know when one of the buttons is pressed, and to know which book is placed on the reader. Based on these inputs, it communicates with the mpd server to start, stop, change book etc. etc.


Each of the DVD boxes that corresponds to one book, contains an RFID card (I used these). To read these cards, I connected an RFID card reader (I used this one but any reader will do) to one of the I/O pins that is able to do serial communication so my program knows which book to play. Each RFID card has its own unique ID, and each audio book is a series of MP3 files that have names starting with this ID.

Getting the books on the reader

I built the reader when I was back in Montreal (which is where I moved from Holland)....

Read more »

  • 1 × Raspberry Pi
  • 1 × RFID reader
  • 1 × Level converter To bring the signal voltage of the RFID reader down from 5 volts to 3.3 volts
  • 4 × Buttons
  • 1 × Headphone connector

View all 9 components

  • 1
    Step 1

    All instructions are here:

View all instructions

Enjoy this project?



jayframe wrote 06/26/2021 at 08:26 point

I love this project. I thought about a similar project for music because I like physical media like vinyl but I want to listen to my playlists and Spotify library. I wanted to use QR Codes but maybe RFID is more practical.

  Are you sure? yes | no

Starhawk wrote 08/23/2014 at 22:47 point
Saw this on the HaD front page. Congrats! And -- way cool device, for a way cool cause. One small piece of constructive criticism -- perhaps a volume dial would've been better than two volume buttons?

Either way: well done.

  Are you sure? yes | no

Xeomorpher wrote 08/24/2014 at 14:40 point
The Raspberry pi has no analogue inputs - Getting an ADC or equivalent solution would complicate things a bit, and it may have just been easier to use buttons.

  Are you sure? yes | no

surubarescu wrote 08/23/2014 at 22:15 point
You could use QR codes (or micro QR) and small camera.
You print the title on a cardboard and the QR code on the other side.

  Are you sure? yes | no

Xzion_DC wrote 08/23/2014 at 15:40 point
Nice work :D

  Are you sure? yes | no

Ivoah wrote 08/23/2014 at 15:10 point
Congrats on being featured on the HaD blog!

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates