The One Button Audiobook Player

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:

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:

https://github.com/exitnode/theonebuttonaudiobookplayer

Update (2013-11-26)

Here’s what Russel wrote in a comment to this post:

“I just completed building this and have some addendum notes adding more details:

Install the following packages:
sudo apt-get install mpd
sudo apt-get install mpc
sudo apt-get install python-mpd
sudo apt-get install python-pyudev

(below assumes using defaults for /etc/mpd.conf)
sudo mkdir -p /music/usb
sudo ln -s /var/lib/mpd /music/mpd
sudo ln -s /var/lib/mpd/music /music/mp3

Copy the tobabp.py script to /home/pi
nano /home/pi/tobabp.py
Change these in the script or flip the connections in wiring diagram.
BUTTON = 17
LED = 24

Testing
Rename a USB stick to “1GB”
Copy 1 MP3 onto the stick
Insert the stick into pi

sudo mount /dev/sda1 /music/usb
sudo /etc/init.d/mpd stop
sudo rm /music/mp3/*
sudo cp /music/usb/* /music/mp3/
sudo umount /music/usb
Remove the USB stick

sudo rm /music/mpd/tag_cache
sudo /etc/init.d/mpd start
mpc clear
mpc ls
mpc ls | mpc add
sudo /etc/init.d/mpd restart
mpc play

Plug in earphones
You should hear audio
Next try the python script:
sudo python /home/pi/tobabp.py
Insert USB stick
the LED should flash and the USB file copy to /music/mp3/
the LED should flash again. Remove the Stick and LED flashes again.
Press button to start playing
Press button again to stop
Press & hold button to rewind to beginning.

sudo crontab -e
Add following line run at startup
@reboot python /home/pi/tobabp.py &
sudo reboot
Then retest again to be sure all is well.”

 

 

 

 

 

 

80 thoughts on “The One Button Audiobook Player

  1. Pingback: One-button audiobook player made from a Raspberry Pi - Hack a Day

  2. 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

  3. 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!

  4. 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

  5. Just what I was working on.
    Excellent, mine is 98. I’ll implement your design.
    Murray.

  6. Pingback: The One Button Audiobook Player #piday #raspberrypi @Raspberry_Pi « adafruit industries blog

  7. Pingback: Rasbperry Pi Mod Offers One Button Audiobook Playback « Merve Demir

  8. 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

  9. Pingback: Rasbperry Pi Mod Offers One Button Audiobook Playback | AyeITech

  10. Pingback: Raspberry Pi becomes one-button audiobook player for the visually impaired - Liliputing

  11. Pingback: ปุ่มเดียวก็ฟัง Audiobook ได้ด้วย Raspberry Pi | Raspberry Pi Thailand

  12. Pingback: Raspberry Pi Mods: LapPi e Audio Player - Netbook News

  13. 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!

  14. Pingback: Raspberry Pi works as an Audiobook « Gadgetfreak

  15. Pingback: Raspberry Pi : Une minimachine pour livre vos ebooks à haute voix

  16. Pingback: Alexandre HOËL » Blog Archive » Le Raspberry Pi fait la lecture

  17. 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.

  18. Pingback: Sunday Grab Bag | Massif Software

  19. 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

  20. 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.

  21. 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.

  22. 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)

  23. 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

  24. Pingback: Sunday Grab Bag | Dank Logic

  25. 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.

  26. Have you thought of adding an ssh server? So one could SCP new audiobooks over the internet whenever said visually impaired relative wanted?

  27. 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!

  28. 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?

  29. 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

  30. 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

  31. 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.

  32. Pingback: Plus de 50 idées pour votre Raspberry Pi | Korben

  33. Pingback: Plus de 50 idées pour votre Raspberry Pi

  34. Pingback: Plus de 50 idées pour votre Raspberry Pi | Chti-Web: création de site web à prix discount

  35. Hi there,
    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 ;) . It seems like a few of us have the same question (Q1 anyway).
    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

  36. Pingback: Blue Note Tech Blog » Projectors, Pandora and Pyrotechnics — 10 Pimped-Out Projects for Raspberry Pi

  37. Pingback: News | Projectors, Pandora and Pyrotechnics — 10 Pimped-Out Projects for Raspberry Pi | Cool Gear | Keeping up with the Latest and must have gadgets.

  38. 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

  39. Hi Erik,

    sorry for my late reply!
    Sure, you can contact me by mail under the following address: clemens fsfe org

    Cheers,
    Michael

  40. 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.

  41. 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?

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>