close-circle
Close
0%
0%

Dementia-friendly music player

Lovechild of MP3 & 1940s radio UI. For seniors with dementia that who no longer use CDs & iPods. Good project for kids.

Similar projects worth following
close
I was inspired by the documentary Alive Inside, which shows the profound joy that music can bring to people with dementia. But my Dad could no longer operate CD players or iPods. But he could use this, because it operates like a familiar 1940s radio (but with a Pi & music files inside).

Goals:
1. Bring the joy of music to those dementia
2. Bring the joy of meaningful giving to makers

47 million people worldwide have dementia. People with dementia often travel back in time by literally forgetting the most recent decades (and modern tech). Thus the old-timey UI of this device.

The director of Alive Inside fervently believes that when the young help the old, everyone is deeply satisfied. So I simplified the build process -- no soldering, no woodworking. You can make this. Kids can make this. Great project for schools.

UPDATE: It’s ready for you to build! And it needs your feedback. So make one. Tell a friend. Tell a school. Questions always welcome.

Ross

The challenge & benefiting society. Go to Netflix and watch Alive Inside -- better than any words I can write. You'll see the joy that a person with dementia can experience when listening to their favorite music. 47 million people have dementia, and many of them cannot operate modern devices like iPods and CD players.

Addressing the challenge. For people with dementia, the user interface (UI) must already be familiar. Not just easy to use, but already familiar. In general, people with significant dementia do not learn new things. But they may have strong memories of how things worked when they were much younger e.g. in the 1940s. Thus DQMusicBox borrows the UI of a 1940s radio.

Documentation & design. Everything is in github. You probably mostly need the step-by-step instructions. But you will also find the requirements doc, the design doc, and the files for laser cutting. The code is also in github, but you'll probably want to get the code as part of the disk image.

Boundaries. Hackaday asks, "Is the project creative, original, and pushing some boundaries?" IMHO, the project is creative and original. It deliberately does not push technology boundaries as the intent is to keep the build process simple, so makers can get these devices out to people in need. 

This is a deliberately simple build. No woodworking. No soldering. The step-by-step instructions include lots of photographs. Some key bits:

  • The case is laser cut bamboo. You can cut it yourself. Since most makers don’t have a laser cutter, I tested sending the design to a company that cuts it for you (works well).
  • Raspberry Pi A+ inside
  • Music is stored on a regular USB thumb drive
  • Parts cost ~$67 (US) if you cut the case yourself, add $28 (US) for a company to cut for you

Although it’s a straightforward build, there are some interesting nerd bits:

  • Really good sound. Uses a firmware update from the Raspberry Pi Foundation.
  • Avoids corruption by using a write protected micro-SD card. Takes rare advantage of the TMP_WRITE_PROTECT feature of micro-SD cards. I learned about this on Hackaday

It’s all open source of course. Code uses GNU General Public License, version 2. Laser cut wood case uses Attribution-NonCommercial-ShareAlike 2.0 Generic (CC BY-NC-SA 2.0).

This project was submitted to the Assistive Technology challenge, which has six criteria. I paid attention to the criteria, and discussed some of them above. For more on the criteria performance, see the final project log. And for general information, see dqmusicbox.org

Video introduction to DQMusixBox.mp4

Video introduction to DQMusicBox

MPEG-4 Video - 4.27 MB - 07/25/2017 at 05:31

download-circle
Download

  • 1 × Raspberry Pi 1 Model A+
  • 1 × Wood case - plans for laser cutting included
  • 1 × Micro USB power supply
  • 1 × Female-female jumper wires
  • 1 × Panel mount headphone jack

View all 11 components

  • Free making opportunity at Seattle Mini Maker Faire 16-17 Sept

    Ross Porter09/12/2017 at 21:02 0 comments

    The Seattle Mini Maker Faire gave me a table. The Faire is this weekend i.e. 16-17 September. At my table you can sign up for a making session. I give you the parts for this dementia-friendly music player, and I'm there to answer any questions. I'm providing the parts for free for these sessions (parts for eight players). All I ask is that you know someone in need to give it to.

  • The six evenly weighted criteria

    Ross Porter08/31/2017 at 03:32 0 comments

    There are six criteria for this Assistive Technology Challenge. How did the project do? Here is my biased evaluation. This is sort of like doing a self-evaluation at work. That is, it’s important to convey key information, be self-critical, but also a bit self-promotional :-).

    How thoroughly have the entry requirements been completed?

    Reasonably complete. Here is a quick summary compiled from above and from various project documents.

    • Challenge. Bring the joy of favorite music to people with dementia, even those that can no longer operate a CD player or iPod. Make it easy to build.
    • Alleviation. MP3 player that looks and operates like an old time two knob radio i.e. makes use of the old strong memories to create something that is immediately familiar. Easy enough for kids to build – no soldering, no woodworking.
    • World changing. 47 million people with dementia, and increasing. We can bring some joy to them. A key intent is to connect makers to their elders in need – everybody wins.
    • Image illustrating use. I took many photos of working builds. And I wrote detailed step-by-step build instructions, complete with photographs.
    • Repositories. https://github.com/rosswesleyporter/dqmusicbox
    • Licenses. GPL for code, CC BY-NC-SA for the laser cut design. See Github repository for more details.

    Does this project address the current challenge?
    Is it assistive? Yes. My Dad (DQ) could no longer use CDs and iPods, but he could use this project. The project is named for him – DQMusicBox. Now I’m hoping that it’s assistive for a lot more people.

    Does the project benefit society in some way?
    Yes, it specifically helps those with dementia. The documentary Alive Inside shows the profound joy that favorite music can bring to those with dementia. The documentary covers the Music & Memory Foundation. There are now 3,000 memory care and other care institution that now have Music & Memory programs. But many people with dementia are no longer capable of using CD and iPods. Two societal benefits: 1) Bring the joy of favorite music to people with dementia. 2) Bring the joy of giving to makers, including kids directly helping their elders.


    Is there base-level planning for the functionality (eg: functional block diagram, list of specifications and how they will be met, etc.)?
    Yes, the project is well documented. During the challenge I completed the step-by-step build instructions including a validated parts list, many high-res photos, and a wiring diagram. During the challenge, I also completed a requirements document and a design document. The laser cutting case plans are also available.


    How well documented is the project. Could the work be replicated?
    Yes, absolutely, see directly above.


    Is the project creative, original, functional, and pushing boundaries?
    It’s creative and original in the sense that I couldn’t find anything else like this (if I had, I would not have done the project). It’s fully functional, ready for other people to build (a few people have during the challenge), and I’ve already given away a few to local memory care facilities. Is it pushing boundaries? It does use a TMP_WRITE_PROTECTED micro-SD card and it takes an unusual route to get great sound from a Pi. But other than that, it deliberately doesn’t push boundaries where it doesn't have to – I wanted it to be easy enough and cheap enough for lots of people to build (including kids).

  • Your thoughts for the next version?

    Ross Porter08/20/2017 at 19:21 0 comments

    As you may have seen, the project is ready to build -- it's quite stable, well documented, has a streamlined build process, and the parts cost has been optimized. Let's call this the standard version. I'd love it if lots of makers make the standard version and thus help lots of people with dementia. That's a key reason that I'm on Hackaday with this project. 

    If the standard model does get traction, then I'll design a pro model. And if I'm lucky, maybe there will be a team to design the pro model (someone has already reached out, which is great). The pro model can have a higher parts cost, so that opens up some possibilities. I'd like your thoughts on that pro model. I'll take whatever thoughts you have. Here are my thoughts on possibilities:

    • More vintage look & feel. Make it even more recognizable / familiar to the recipient. Perhaps cathedral style: image of vintage radio below courtesy of Broken Sphere / Wikimedia Commons.  You can buy radios in this style today, so the project might even change from a laser cut from scratch to gut and rebuild. Although I would find it very tempting to laser cut it. Or perhaps a 1950s box radio: image of vintage radio below courtesy of Joe Haupt / Wikimedia Commons. These are just a few quick thoughts -- lots of vintage look & feel options.


    • Add a speaker(s). There is an issue with the recipient really cranking the volume and annoying caregivers etc. But otherwise it's a natural addition.
    • Add graphic equalization that mimics a person's hearing aid profile. Someone with dementia probably also has a hearing aid, but the hearing aids can be a source of frustration as well. Perhaps this can be done in software.
    • Model in 3D. The existing laser cutting plans are hand optimized in 2D, which make the plans harder to adapt for different wood thicknesses etc.
    • Interference fit instead of glue fit. Such that the wood case can be assembled with a rubber mallet instead of wood glue. I experimented this, which was fun. But it increased the cost a bit, and I wanted to keep the parts cost down for the standard model.
    • 3D printed case. I do like wood for familiarity / vintage reasons. But plastic might be OK. And someone just told me about 3D printing with wood composite filaments. I haven't looked into it yet.
    • Make it easier to add/remove music. Adding and removing music from a USB thumb drive is quite easy for you and I. Less so for the elderly spouses that might be the caregiver. The device could be Internet connected, but that creates complexity as well.
    • Give it appliance-like reliability. The standard model does quite a bit (read-only SD card etc.) to make a Pi-based solution reliable. For even greater reliability, maybe an Arduino approach (which, BTW, is harder than it sounds), or a custom circuit.
    • Make it manageable. If these are to be used in a senior care center, make the devices centrally manageable in some way. That might require network connectivity.
    • Add language options. Have laser cutting models or 3D printing models with translations of "volume" and "sound" labels.

    I'd love to hear your thoughts. 

    -- Ross

  • Avoiding corruption with SD card write protection

    Ross Porter08/12/2017 at 19:03 0 comments

    Micro-SD cards can make Raspberry Pi projects less durable, particularly when power can be yanked at any time. This project log describes how to reduce SD card corruption with the rarely used TMP_WRITE_PROTECT feature in the SD card standard. It's a big hammer (love those!) and works well with DQMusicBox.

    The DQMusicBox project already does SD card write *reduction* by using DIetPi and RAM logging. Thus, engaging TMP_WRITE_PROTECTION is optional. I love saying "optional" to a group of hackers -- it's like bait!

    I was inspired to do this by the SD Locker project that I saw here on Hackaday.  But I wanted to use a Pi to do this. So I setup a Pi 3 that boots from a USB thumb drive. I installed sdtool. Now when I want to TMP_WRITE_PROTECT a micro-SD card, I just pop it in the slot and run sdtool from the command line. Here is the rig that I use:

    The slightly tricky bit was getting the Pi 3 to boot from USB. I used DietPi as it has setup support for USB booting. Detailed instructions for setup and use are in Appendix 1 of the DQMusicBox build instructions

  • I will be exhibiting/making at the Seattle Mini Maker Faire

    Ross Porter08/08/2017 at 02:14 0 comments

    I will be exhibiting/making at the Seattle Mini Maker Faire, September 16-17. The Maker Faire people were nice enough to give me a table. So if you want to see a DQMusicBox (and me) in person, just stop by. Should be fun there -- I'm looking forward to seeing the pipe organ and the Luminescent Grand Piano. The Faire is at MoPOP (formerly the EMP Museum) near the Space Needle.

  • Design

    Ross Porter08/03/2017 at 03:40 0 comments

    I just published the design doc on github. Key bits below. Let's begin where we left off in the requirements -- with the challenging use-cases, and how the design satisfies those requirements.

    Use-case: be familiar - the device should immediately seem familiar to the end-user. 
    Design: vintage radio on the outside, MP3 player on the inside.

    Use-case: update set of music e.g. adding albums - must be elderly-caregiver-friendly.
    Design: music is stored in albums/folders on a regular USB thumb drive.


    Use-case: play key music formats -
     support MP3, AAC/iTunes, FLAC. 
    Design: VLC (VLC-NOX specifically) handles music playback, so all key formats supported.

    Use-case: create playlist - create a playlist in some sensible order e.g. alphabetical by album.
    Design: Python code scans the USB thumb drive, orders found music by album/folder name, and then hands this off as a single playlist to VLC-NOX.

    Use-case: have good audio quality - shouldn't suck.
    Design: a firmware update from the Pi Foundation that dramatically improves audio quality.

    Use-case: support sudden shutdown - no issues if unplugged or if power is lost.
    Design: read-only micro-SD card - TMP_WRITE_PROTECT bit set on micro-SD card.


    I will write more project logs. I'm not sure which one will be next. Might be about the most convenient way to enable TMP_WRITE_PROTECT on micro-SD cards.

    Best,
    Ross

  • Requirements

    Ross Porter07/31/2017 at 03:56 0 comments

    Hello all,

    I just published the requirements (use-cases) on github. Key bits below. The next project log will be the design. I'm doing real (if concise) requirements and design docs to help anyone that wants to improve the project. And if schools decide to do builds, I want them to have start to finish project docs. 

    DQMusicBox is a conceptually simple thing, and deliberately so. You can see this in the requirements -- there aren't that many use-cases. I won't repeat all of the use-cases below. I'll jump straight into a discussion of the use-cases that  place interesting constraints on the design.

    Use-case: update the set of music on the device. The elderly non-technical spouse of the person with dementia may be the one adding and removing albums from the device. So a USB thumb drive method is better than a micro-SD method. But of course this a world of choices when thinking about this in the universe of implementation options (MP3 player boards, Arduino, Rasperry Pi, other SBCs, custom board, ...).

    Use-case: play key music formats. Best to support MP3, AAC/iTunes, FLAC. Not a problem if the device uses a full operating system e.g. Raspbian. But challenging for MP3 player boards and Arduino.

    Use-case: create playlist. Create a playlist in some sensible order e.g. alphabetical by album name. Easy for Raspbian, not for MP3 player boards. 

    Use-case: have good audio quality. It doesn’t have to be amazing, but it shouldn’t be awful. No problem for most tech options, but a challenge for some e.g. a Raspberry Pi sounds merely OK (though but this can be nicely resolved with a firmware update from the Pi Foundation).

    Use-case: support sudden shutdown. The device should behave like a consumer electronics device e.g. you can unplug it with no issues. No problem for MP3 player boards and Arduino. For Raspbian et al, no problem if there is a battery, challenge if there isn't. Ideal for the executable bits to be on read-only storage (to resist corruption), keeping the music on separate writeable storage. 

    The next project log will be the design.

    Best,
    Ross

  • Introduction

    Ross Porter07/25/2017 at 06:12 0 comments

    Welcome!

    If you have made it this far, you are either 1) a nerd like me and thus curious, 2) have a loved one with dementia, or 3) both. In these log files, I'll try to speak to both audiences.

    First, go to Netflix and watch Alive Inside -- better than any words I can write. You'll see the joy that a person with dementia can experience when listening to their favorite music. Bring some Kleenex. Go ahead -- I can wait.

    Well that was heartening, wasn't it? When I saw that, I put my Dad's favorite music on an iPad, and put good headphones on his ears. Such joy! Then I tried to teach him to play music on an iPad. Such frustration! I quite like iPads, but my Dad was past using iPads, iPods, and CD players. But his youthful memories were strong. Thus I designed DQMusicBox to take user interface cues from 1940s radios.

    If you want to, you can build a DQMusicBox now. So far, I'm the only one who has built one. But I've been rather obsessive about simplifying the design and creating detailed instructions.

    Now for the nerdy stuff. The next logs files will cover some or all of these topics:

    - Requirements & design. I'll write some basic use-cases and create some standard software engineering diagrams. After all, I want to set a good example for the kids that might build this project.

    - How to get really good audio from a Raspberry Pi. The Pi Foundation did the hard work, but not many people seem to be using it.

    - How to use a write-protected micro-SD card with a Raspberry Pi. I think of SD card corruption as a weak point in Pi projects. But Hackaday taught me about the TMP_WRITE_PROTECT bit on SD cards. And it's a really good fit for this project. I've got it working now, but I think I can simplify the process.

    - How to make the project better. I'll list a bunch of ways that the project could be improved. And BTW, my ego is fully prepared for a high school sophmore to come along and improve the design. In fact, I think that would be fantastic!

    Ross

View all 8 project logs

View all instructions

Enjoy this project?

Share

Discussions

Jean Pierre Le Rouzic wrote 7 days ago point

Thanks for having created this. This is a great idea and it is also beautiful.
I wonder if it would be possible to make a pseudo TV on the same thread of ideas.
For example the box would be equipped with an enough large screen and the box could be "tuned" on pre-registred Youtube channels.

  Are you sure? yes | no

Ross Porter wrote 5 days ago point

For sure. Especially with a beefy SBC inside.

  Are you sure? yes | no

moonlitmilkman wrote 09/17/2017 at 06:15 point

Ross,


This project is amazing and well-suited to the target audience. I'm curious as to why you chose VLC over Music Player Daemon (MPD) or another music-targeted platform?

  Are you sure? yes | no

Ross Porter wrote 5 days ago point

VLC (specifically vlc-nox) made it easy. Has callable methods that matched up nicely to the project e.g. build playlist, go to next song. Has Python bindings that are well documented. So I only had to write about 300 lines of Python. VLC's support for many audio file types is great. VLC has a built-in volume boost that can be helpful for people that are especially hard of hearing (the Pi's headphone jack isn't super loud). VLC might be overkill, but the performance is great even on a Pi A+. MPD and others may work just as well or better. I happened to start with VLC and it came together pretty quickly.

  Are you sure? yes | no

David Neff wrote 09/13/2017 at 13:57 point

Hi Ross,

I just finished my 3d printed version with enclosed powered speakers. I'll do some documentation soon and put files on Thingiverse.

A question for you, when I ran my first tests, I sampled my MP3 library, after building everything I loaded my mother's M4A based library which seems problematic. It seems to stall or hang on files (silence). I tried shortening names, filling blanks with underscores and still had probems. Once again loading up my MP3's it seems to work. Still, some of the M4A files did play and I can't seem to find a reason why some do and some don't. All of the M4A files were ripped on the same machine from original CD's through Itunes within a week.

I hooked up a monitor and keyboard but don't have enough tech chops to get any useful info...

Any ideas?

  Are you sure? yes | no

Ross Porter wrote 09/13/2017 at 16:10 point

Hi David,

Congratulations on the 3D printed version with speakers.

The system uses VLC (specifically vlc-nox) under the hood, which is known for playing anything and everything. I have used files from iTunes on the box, but not extensively. I'll try some more files in the next few days. I'm curious if your files play for you using desktop VLC. In case you are not familiar with VLC, it's available on lots of platforms e.g. Linux, Windows, MacOS.

I'll be at the Seattle Mini Maker Faire this weekend (they gave me a table). If you like, I'm happy to print and display an attributed photo of your 3D printed case as an alternative to the laser cut wood case. 

  Are you sure? yes | no

David Neff wrote 09/13/2017 at 17:29 point

Here's the thingiverse link to 3d printed parts, I'll have photos soon.

https://www.thingiverse.com/thing:2532344

I tried VLC, it plays the files no problem. I tried to convert them to MP3s but it didn't fly. I'll try another version on a newer machine and report back.

  Are you sure? yes | no

Ross Porter wrote 09/14/2017 at 06:26 point

Hi David.

I printed an attributed copy of your Thingiverse pages. I'll put those on the table at the Maker Faire.

I tried 20 .m4a files from iTunes. They all played normally. If you send me a link to iTunes to one of the songs that fails, I'm happy to spend a buck to test that song file specifically. 

Also, you can monitor a dqmusicbox-specific log file on the device. Connect the device to Ethernet, turn on the device, determine the device's IP address from your router, putty to the device, tail -f /var/log/dqmusicbox. The logging is fairly verbose, so you'll see the result of each knob event, particularly including the song that you select by turning the songs knob. You may also see some error messages.

  Are you sure? yes | no

David Neff wrote 09/14/2017 at 15:09 point

It's a deliverable! I transcoded files to MP3 and shortened names to about 10 characters. Likely it's the latter that made a difference but I'm done testing for the time being. Thanks again for a great project! Can't wait to see it in use.

  Are you sure? yes | no

David Neff wrote 09/14/2017 at 15:12 point

I ripped all the M4A's from my mother's CD collection... names came from gracenote and they were long! My wife, did try looking at the log while it was running using a little 3" monitor but we didn't see errors, it logged knob turns and showed file names but just didn't play. May try again but... I have a 4 year old!

  Are you sure? yes | no

Ross Porter wrote 09/14/2017 at 16:57 point

Ah, long filenames. All the m4a tests I did were from iTunes downloads, which might have shortened filenames. I did have some problems a year ago with some crazy extra long with special characters filenames on ripped FLAC files from a few classical albums.

  Are you sure? yes | no

Graham wrote 08/30/2017 at 13:31 point

Hi Ross,

Great idea.

As I am familiar with Rasbian, I decided to build this project on that OS. I have a Pi 3.  know have it working on the bench - no case yet.

Some additional notes:

1) python-vlc (vlc.py) needs downloading into same folder as the two Python files you provide.

2) I amended the initialisation of music_path to the path found in File Manager (Go/Devices etc).

3) I struggled with the logging system and ended up commenting out your five lines of logger/formatter/handler code and replacing them with some code I found in a tutorial.

logging.basicConfig(level=os.environ.get("LOGLEVEL", "INFO"))

logger = logging.getlogger('dqmusicbox')

This logs to the Python Shell window, which is ideal for testing purposes.

Next, I am going to implement on a Pi Zero using an additional audio circuit board connected to the GPIO. While I awaiting its arrival from the US (I am in the UK) I will use HDMI.

Graham

  Are you sure? yes | no

Ross Porter wrote 08/31/2017 at 02:38 point

Hi Graham,

I'm glad that it is working for you and that you were able to do the DietPi --> Raspbian changes. I will update the admin instructions as per your notes. Good luck the Pi Zero work, sounds like fun.

  Are you sure? yes | no

David Neff wrote 08/07/2017 at 16:01 point

Hello Ross, thanks for a great project! I was thinking of designing something like this for my mother but happily your project appeared in my inbox a last week.

I just assembled the parts this morning, it booted up immediately and works great. 

I am making a few modifications and did a few things differently on hardware. I'll share it all once I finalize the build. I do have a few questions if you or the community could help out.

I built the project an a Pi B so that I could have additional USB ports for power/keyboard/mouse, partly because I'm a newbie, partly for modifications. One thing I am doing differently is using USB powered Altec Lansing speakers instead of headphones. I designed a case to be 3d printed, and am still tweaking the case before printing.

I just found the config file, updated the screen res to readable. Now I guess I should just ignore the updates available as it's working.

You mentioned the Pi Foundation firmware update for better sound, of course I want the best I can get, but once again, is this doable using Diet Pi or do I need to boot using the NOOB card.

David

  Are you sure? yes | no

Ross Porter wrote 08/08/2017 at 01:43 point

Hi David. Glad that it is working for you. 

I chose DietPi because it is so lightweight e.g. boots quickly, and because it does some things that likely reduce SD card corruption e.g. RAM logging by default. See dietpi.com. I haven't changed from the default DietPi username (root) and password (dietpi). 

When making changes, I usually put the DQMusicBox on Ethernet and use Putty to connect. Works well for me. The only annoying part is figuring out which IP address it got.

At the moment, I don't recommend updating to a new version of DietPi, as last time I checked, there was a change in how USB thumb drives are automounted, which unfortunately breaks how DQMusicBox finds music files. I'll handle that, but I haven't yet. The box doesn't need to be on a network (that's deliberate), so I'm less concerned about getting security updates than I would be in other circumstances. Fundamentally, DQMusicBox is an old school appliance, content to live a simple non-evolving life.  

Happily, you already have the Pi Foundation firmware update. It loads from the micro-SD card as part of the boot process. In other words, it's already in the image that you downloaded.  To read more, see https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=136445. This is an "experimental" firmware update. But it works reliably for DQMusicBox purposes. And I'm quite impressed by the audio quality.

I have tested DQMusicBox with a Pi A+, a Pi 2, and a Pi 3. Seems to work fine on all.

Questions welcome. And I'm curious to see how your project turns out.

Ross

  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