Dementia-friendly music player

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

Similar projects worth following
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).

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.


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

Video introduction to DQMusixBox.mp4

Video introduction to DQMusicBox

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


  • 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

  • Avoiding corruption with SD card write protection

    rosswesleyporter6 days ago 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

    rosswesleyporter08/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

    rosswesleyporter08/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.


  • Requirements

    rosswesleyporter07/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.


  • Introduction

    rosswesleyporter07/25/2017 at 06:12 0 comments


    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!


View all 5 project logs

View all instructions

Enjoy this project?



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.


  Are you sure? yes | no

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


  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