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.