A television mute button for my special-needs son

Similar projects worth following
Our son, Jamie, suffered a brain aneurism at the age of three. Though he's come a long way since then (he's twenty now), he still has trouble with fine motor skills and his vision is not perfect. When we are watching television together, he will often remind us to mute it during commercial breaks, and un-mute when the show we're watching returns. Sometimes, we tell him that he is in charge, and hand him the remote to handle that job. But there are a lot of small buttons there, and he often loses track of which one is the "mute" button.

I decided to build him his own stand-alone mute control. I want it to be easy for him to use, so it will have a button that is big enough for him to easily see and feel.

I'm planning to use an ATTiny85-based Digispark board to drive this device. It will have a nice, big, easy-to-push button for my son to use, and some software button debouncing to prevent "double-clicking". I'll use cyborg5's version of IRLib for driving the television remote codes.

  • Better range

    dougal05/18/2015 at 20:16 0 comments

    Progress! I tried adding a 2N3904 NPN transistor to switch more power into the IR LED signal, and it worked! I was able to toggle our television's mute from all the way across our family room. I did have to aim it pretty directly though, so the next thing I'll probably try is using 2 or 3 LEDs together, in order to get more spread in the beam. I might also try using a 2N2222 transistor, since it can deliver more current than the 3904.

  • First prototype

    dougal05/08/2015 at 22:39 0 comments

    We're ahead of schedule on a project at my job, so I finally was able to grab a few minutes to work on Mute-ation. I already knew that I wanted to use cyborg5's version of IRLib (which is based on Ken Shirriff's work). And the first thing I needed to do was determine what code to send. So I dusted off a random microcontroller, wired up an IR receiver (I used my Digispark IR shield), and determined that my TV uses the NEC encoding, and the "mute" code is 0x5FA38C7.

    With that code in hand, I grabbed an Adafruit Pro Trinket, hooked up a pushbutton and high-power IR LED, and mashed out some quick button debounce and IR send code.

    I plugged it into a USB battery pack, pointed at the TV, pushed the button and... It worked! Well, as long as I was within about 3 feet of the television.

    I started doing a little research into how to increase the range. It looks like there are three factors: power (current) to the LED, wavelength of the LED, and focus. I know that Arduino pins are limited in how much current they can supply, so I'll probably try slipping in a transistor, to route current directly from my source. I'm not sure how much that will help, so I may end up ganging up 3 or 4 LEDs in parallel.

    Still, I'm encouraged that this initial attempt worked as planned. It just needs some refinement now.

    So, some ToDos:

    • Change the power setup to use a couple of AAA batteries, and use a boost regulator to power the board.
    • Figure out the range issue.
    • Research low power sleep modes, so I can save energy until a button press wakes the device up.
    • Get everything into an enclosure.

  • First fails

    dougal02/28/2015 at 22:50 1 comment

    I did try building a quick prototype based on a DigiSpark (ATTiny85), but the converted version of the IRLib library was giving me problems, even after exchanging some messages with the author and applying a couple of fixes.

    I haven't had much time to look at it recently, because immediately after the kids were home for their week-long winter break, we had snow and ice that kept them home again the following week!

    I'm hoping that next week, I can find a little spare time to try again, using a Pro Trinket, or a Pro Mini. Though, I think the Pro Trinket might pose a problem, because the IRLib send function uses pin 3, which I seem to recall is unavailable on that board...?

  • Missed the contest

    dougal01/05/2015 at 18:50 0 comments

    Unfortunately for this project, but fortunately for my family, we closed on a new house on Dec 23rd. This meant that we started moving on the day after Christmas -- a process which will likely be ongoing for at least a couple more weeks -- and I didn't get to build this project in time to participate in the Trinket Everyday Carry contest.

    However, I still intend to work on it as time allows. Since the contest is over, I might use an ATTiny85-based DigiSpark board instead of the Trinket Pro. It should be more than capable for the simple needs I have. And if my µC chops were more up-to-snuff, I could probably do it with an ATTiny45 or 25.

View all 4 project logs

Enjoy this project?



jens.andree wrote 06/27/2015 at 20:16 point

I used arcade buttons for my special-needs projects when my boys were younger which made it easier for them to press the correct button.

I've also made quite a few IR enables projects so if you need any help just ask and I'll help with what I can. Have made remote controls in the past so the standard TV IR protocol(s) is something I already know.

  Are you sure? yes | no

dougal wrote 06/29/2015 at 17:03 point

Thanks! My main enemy is time -- I just don't have enough of it. I need to get back to this project and finish it up. I have a nice lighted button from Adafruit that I planned to use, but now that I look back, I think it's actually an on/off switch, not a momentary button. So I might have to select a replacement at some point. 

  Are you sure? yes | no

Mike Szczys wrote 12/27/2014 at 17:18 point

Ask around if anyone has a remote control oscillating fan. Often they come with a nicely sized remote that has 1-3 buttons on it but most people never use them. This would be a perfect thing to repurpose for the project.

Can't wait to see how this one 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