This little Raspberry Pi based project is a gift for my wife’s grandmother for her 90th birthday. Being visually impaired, she is hard to entertain but loves to listen to audiobooks. The problem is, that she isn’t able to handle a ghetto blaster or MP3 player.
The solution to this problem was – tadaaaah – a one button audiobook player
It basically consists of:
- 1 Raspberry Pi
- 1 ModMyPi enclosure
- 1 button
- 2 resistors (330 Ohm, 10 Kilo-Ohm)
- 1 blue LED
- 1 (slow) 8GB SD-Card
- some wire
- a pair of speakers
The following software has been used:
- Raspbian minimal image (http://www.linuxsystems.it/2012/06/raspbian-wheezy-armhf-raspberry-pi-minimal-image)
- mpd (music player daemon)
- mpc
- mpd-python
- pyudev (for USB access)
- a self-written python script
The features are the following:
- always on: When you power on the raspberry, it will boot up and start the python script with the audio book in pause
- one button usage: The button pauses and unpauses the audio book or goes back one track when you press the button longer than 4 seconds
- remembers position: It will always remember the last played position
- only one audiobook: There will always be only one audio book on the Raspberry
- easy audio book deployment: When you plug in a USB thumb drive with a special name/label, the Raspberry will stop playing, mount the thumb drive, deletes the old audio book, copies the new one, rebuilds the playlist and – after unplugging the thumb drive – starts the new audiobook in pause mode
- multi format: Since it uses mpd, the player supports Ogg Vorbis, FLAC, OggFLAC, MP2, MP3, MP4/AAC, MOD, Musepack and wave
Some pics and a video:
(The audiobook used in this video is a free version of Cory Doctorows “Little Brother” from Fabian Neidhardt)
If you like to build your own one button audio book player, here are the super simple schematics:
And last but not least – the python script. The code might be crappy, please comment if you have improvements (especially regarding loadMusic). You can find it on github:



Pingback: One-button audiobook player made from a Raspberry Pi - Hack a Day
Pingback: Belgaum news | About Belgaum | Belgaum information | Belgaum district | Belgaum city | Belgaum Hotels | Belgaum People | Belgaum tourism | Belgaum entertainment | Belgaum students | Inside facebook | Hack | make use of | technical news | | One-button audi
Using the technology to help your wife grandmother is awesome:) good work!
This is great! I’ve got a Raspberry Pi on order and am thinking of doing something along the same lines for my young daughters to easily play some music. Your work will make a great reference, so thanks!
well done -if i may mabye you could post a link in the puppy linux fourms as i know theres a few guys there workin on a pupplett for visually impared older folks so this may help them or you may get ideas there
Just what I was working on.
Excellent, mine is 98. I’ll implement your design.
Murray.
Pingback: The One Button Audiobook Player #piday #raspberrypi @Raspberry_Pi « adafruit industries blog
Pingback: Rasbperry Pi Mod Offers One Button Audiobook Playback « Merve Demir
Good application of technology to help someone!
Save yourself a resistor for the next one by using either of the 2 I2C pins on the Pi (BCM_GPIOs 0,1 on a Rev 1 board, 2 or 3 on a Rev 2 board) – make them inputs and arrange the button to short to ground – uses the Pi’s on-board 1.8K resistors to bias the pin to logic 1, so you poll for the button being logic 0.
-Gordon
Pingback: Rasbperry Pi Mod Offers One Button Audiobook Playback | AyeITech
Pingback: Raspberry Pi becomes one-button audiobook player for the visually impaired - Liliputing
Pingback: ปุ่มเดียวก็ฟัง Audiobook ได้ด้วย Raspberry Pi | Raspberry Pi Thailand
Pingback: Raspberry Pi Mods: LapPi e Audio Player - Netbook News
My late mother had the same problem — vision-impaired but loved reading, so needed a way to listen to audio books. The association for the blind sent her a recorder, but it was awkward to use. The buttons were difficult.
Most of all, it kept playing when she fell asleep. She could not figure out how to get it back to wherever she had left off. So, she had to start over each night. Frustrating!
BLESS YOU for doing this for not only your wife’s grandmother but also many other seniors, too!
Pingback: Raspberry Pi works as an Audiobook « Gadgetfreak
Pingback: Raspberry Pi : Une minimachine pour livre vos ebooks à haute voix
Pingback: Alexandre HOËL » Blog Archive » Le Raspberry Pi fait la lecture
Hey, thanks for doing this. My Dad is in the same boat. He is getting more and more confused with electronics, phones, radios, etc., but I think he would love something like this. He used to read a lot but is having trouble keeping his eyes focused on reading material. I ordered a Raspberry Pi a couple weeks ago to tinker around with. I think I may have found a good use for it. I may have more questions on this project.
Very cool project, I added it to my “10 coolest Pi project list”.. I hope you don’t mind. http://www.apeboymonkeygirl.com/2012/11/10-of-the-coolest-raspberry-pi-projects/
Pingback: Sunday Grab Bag | Massif Software
I tried to build something like this a few years ago, but never got it off the ground. So kudos to you for making it happen.
Some suggestions:
- Speex support would allow you to have much higher quality at lower bit rates. But perhaps in these days of plentiful storage, that’s not as important as it was 5 years ago
- Even with a single button, you could have an audio menu system, where you choose things by pressing the button when you hear your choice. This would be more work, but also less maintenance afterwards. So:
“Welcome. Press the button to choose. Continue current book. Choose different book.”
“Choose different book. Thank you. Do you want to: choose a book you’ve never read before, choose a book you have not yet finished, or choose a book you have finished?”
“Choose a book you’ve never read before. Thank you. Here are your unread books…”
and so on.
Gerv
Love the idea. I listen to audiobooks almost every night while going to sleep, and I’ve found that the best feature in any audiobook player is the sleep timer. I don’t know programming, but a 30 minute timer before the audiobook pauses might be a good addition.
Wow! great idea! That will be wonderful for the low vision community!
awesome idea, I was looking at doing something similar a few years ago but the tech was beyond me. Now with the Pi it’s reachable.
As an enhancement, a DAISY player would be amazing, but it might need more buttons so would probably be less useful for the elderly.
A really cool idea. Love it!
A Suggestion:
You seem to always use the same USB stick, how about AutoFS for mounting? Or you can use an udev-rule for mounting, copying, unmounting and the mpc/mpd stuff (the whole loadMusic-section)
Wow! This is exactly what I wanted for my grandmother for years, for the same reasons everyone has described. We made do with other solutions, and she just passed away, but my other grandmother is exactly the same and I’d love to give her one. Any chance these will be for sale soon? I have engineers in the family, but I don’t know what it would take to get them to build me one. =)
I’ll send them a link and see…but in the meantime, if anyone wants to manufacture and sell one, please let me know! dcsheats…..add a Juno email extension
Pingback: Sunday Grab Bag | Dank Logic
I am planning to give my grandmother a gift this christmas. She spend most of her time reading novels. I am glad to read this article. And finally I have the perfect gift for my grandmother.
i don’t know what was i doing wrong but this code doesn’t work on my pi
so i modificate it and here it is
https://github.com/vonProteus/RPi-OBABP
Have you thought of adding an ssh server? So one could SCP new audiobooks over the internet whenever said visually impaired relative wanted?
Great work, +1 as my grandmother is almost 100 years old and have problems with both eyesight and hearing, but the intellect is sharper than most in the family (especially mine)
I will definately build this, I have a few congestions (concerns and suggestions):
- My grandmother has WiFi available at home, so i will definately add a USB Wifi adapter for remote assistance and adding of book, and perhaps in the future also book downloads.
- Falling asleep; I myself have this problem when listening to Audible books on my phone, i cant even remember where i last started listening, so i will add some function to place a bookmark in the form of a time stamp somehow. If someone have a good suggestion for automatic sleep detection (on the Pi solution above), let us hear them!
- Give it some pun-name in the spirit of most Pi hacks, if it has many books i would have suggested “Pibrary” (sorry, just had to).
- As suggested above, an extended menu system somehow would be good, but of course at a cost of simplicity.
- Portability; i would probably need to add some kind of battery&charger, or grandmom would feel too restricted.
- Podcast support (over wifi), as she likes to listen to the radio so she can catch up on her favorite shows at her convenience.
- Button & LED; I’ll probably try to find a big button with a LED inside. Makes it easier to find the button at least when its on.
…but thats just my thoughts, any feedback and suggestions appreciated!
Great work Michael! A brilliant simple solution to a difficult and very disabling problem.
Keep it up!
I just found out about the Raspberry Pi while researching to make an audiobook player for my blind grandmother for Christmas.
It seems easy enough to set up the hardware but how do you load the software and get that all setup? Is it all done on my computer on the SD card, then inserted into the PI? I am pretty computer savy but this type of project is a little foreign to me. With a little more instruction I should be able to figure it out.
Thanks in advance for your help.
-Dan
Or is anyone out there willing to build one for me?
Hi just going through this page… brilliant by the way, but in the circuit diagram it shows the LED on GPIO17 and the button on GPIO24, but in the python script it seems to be the other way about…. am I missing something… gonna be building this this week….
thanks for sharing, this is what open source is all about!
h
Could someone please help!? I bought the Raspberry, loaded the OS, built the hardware (buttons and led, etc)…. but I have no idea how to impliment the “Python Script” or how to download the other “software” used to make this work.
If some one could please help me out it would be greatly appreciated!! I need to have this finished before Christmas. I would even be willing to pay for your help. This is a very important Christmas gift for my bild grandmother
Dan
dangraves25 @ gmail.com
Dear Michael,
yesterday I started to build this project for my girlfriends grandmother.
to cut a long story short, i ran into some problems. when the usb-stick is plugged in I get error messages. Before elaborate more about my problem I wonder if there is a way to get help on this project. In return I want to make a detailed description of how to set up this book reader because it can be very benefitial to many people. thank you in advance.
regards,
erik.
Pingback: Plus de 50 idées pour votre Raspberry Pi | Korben
Pingback: Plus de 50 idées pour votre Raspberry Pi
Pingback: Plus de 50 idées pour votre Raspberry Pi | Chti-Web: création de site web à prix discount
Hi there,
. It seems like a few of us have the same question (Q1 anyway).
I am new to Pi and your project looks perfect. I do have a couple of questions though, if you would be able to help a novice
1: How do I get the script onto the Pi, and where to put it? I know it has Python on as standard.
2: I am not using this for an audio book but will be creating my own mp3 file which I would like to be a continuous loop. My question is therefore, how do I get it to loop?
Many thanks, Kevin
Pingback: Blue Note Tech Blog » Projectors, Pandora and Pyrotechnics — 10 Pimped-Out Projects for Raspberry Pi
Pingback: News | Projectors, Pandora and Pyrotechnics — 10 Pimped-Out Projects for Raspberry Pi | Cool Gear | Keeping up with the Latest and must have gadgets.
Hi Kevin,
You are right, I should write a more detailed guide. I promise I will do so as soon as I will find some time.
The script can be transferred via scp or just by copy and paste it into your favourite text editor directly on the raspberry.
You can loop a mp3 with the repeat function of mpc:
mpc repeat on
Cheers,
Michael
Hi Erik,
sorry for my late reply!
Sure, you can contact me by mail under the following address: clemens fsfe org
Cheers,
Michael
Hi,
please let us know if it works
Cheers,
Michael
Thank you very much!
Hi,
not really, because my wifes grandmother has no internet connection at all
Michael
Cool, thanks for sharing this!
I’m really glad to hear this!
I love the Pi – but you can do this for much less cash!
I bought one of these
http://www.ebay.co.uk/itm/Mini-Clip-MP3-PLAYER-Support-Micro-SD-Card-upto-8GB-Memory-Card-/221172615999?_trksid=p2045573.m2102&_trkparms=aid%3D555003%26algo%3DPW.CAT%26ao%3D1%26asc%3D33%26meid%3D5127840115015320825%26pid%3D100034%26prg%3D1031%26rk%3D4%26
for £2.29
I put it in an old spectacles box and built a BIG external button that presses the central button
It works very well with an old pair of PC speakers.
Hello, has anybody an Idea?
on my reproduction, the audioplayer script recognize no USB Stick.
Keyboard and/or Mouse is ok, but no USB-Stick.
In 80% my RasPi reboots when i plugged in an Stick while Script is running.
Can anybody help me?