Programming the chips
CMA Remote Control
- Created on Tuesday, 25 January 2011 04:18
- Last Updated on Tuesday, 29 April 2014 20:58
- Written by Mike Holden
- Hits: 15089
The California Maritime Academy, where I work, has nice projectors in every classroom for instructors to use.
Unfortunately, the remote controls for these ceiling-mounted projectors are long gone.
Below is a picture of a typical CMA remote control (a student or instructor, either on a chair or with a stick to push the power button).
Taking matters into my own hands, I gathered enough info on the web to make my own remote. The remote just sends the epson projector on/off code when you turn it on, then it goes idle. There are other codes that the projector understands but I don't need them.
My first idea was to get a tv-b-gone; it sends the power code to a whole bunch of devices, so surely it would work? I got the tv-b-gone software for an arduino system (here) and tried it out. It did turn off my tv at home, but failed at the (admittedly somewhat rare I suppose) epson projector.
Luckily, from that same source, there was an arduino IR remote library. If only I had an original remote to get the code from! Fortunately, there is yet more info on the internet (surprise!), this time codes for epson projectors. The projector code follows the NEC protocol from the arduino library: the 32 bit code for power on/off is 0xC1AA09F6. If you'd like to make an arduino projector remote, here is my software. This will send the code on power up, but it takes a couple of seconds for the bootloader to time out. A picture below shows the hardware.
So far so good, except....
The arduino is expensive (relatively) and I needed to plug it in with a USB cable to turn it on (I could have rigged a battery I know). Seemed like a good task for a cheap standalone controller. The arduino library references this page with lots of info on IR remotes. By combining that info with a peek into the arduino library sources, I was able to write a regular C program for the atmel atmega 88P. I had some in my workshop so I soldered up a board. The only parts required are the chip, a 5V regulator (78L05), button for power, and the IR LED. I also included an ISP programming header and a visible-light LED to verify that something happens when I push the button. Here are some pictures of the final board.
Code for the Codevision Compiler to make the remote work. If you don't have codevision, you could just burn the hex file into a chip.
Last, here is a scan of my notes that shows the schematic and fuse settings.
- the image is labeled Mega 8, I really used the mega 88P.
- The button is a power button, the system powers on only when the button is pressed.
- I included the ISP header on the bottom of the board so I wouldn't poke my fingers (the plastic frame is on top so I could solder to the bottom side).
- The circuit board is a radio shack copper board with the proto-board layout.
Update 2/02/11 (Happy Groundhog's day)
After using this for a couple of weeks, I got a box (at the container store) and mounted it inside. It's a nice clear box so you can see the guts; it will probably end up really scratched in no time, but it's good for now. I mounted the board with screws and threaded standoffs, the battery clip is a radio shack part (or maybe Jameco, it was in my junk drawer) and it's pop-riveted to the box. I had to trim the circuit board to make room for the battery (I have a little band saw but a dremel cutting wheel would be good too). I had to dremel a little from the bottom of the box to get the box to close, because the board is mounted so close to the edge of the lid that the lip of the box couldn't fit inside. The box has no latch so I taped it shut with scotch tape. This project has been great, I use it nearly every day and love not having to wade to the middle of the class and power up the projector.
Here are some pictures in the box: