DIY Computer Remote

  -"The technology of tomorrow comes from the dreams of today."

For the past several years, I have been wanting a wireless remote for my computer. The problem was that I am unwilling to pay the money for a good remote, and I don't want to waste money on a really cheap remote. The solution: transform the xbox dvd playback kit into a remote control for my computer. The dongle will then be able to be used on the xbox for movies and in my computer as an incredibly adaptable remote.

This is a DIY project, so any work that you do can harm yourself, your computer, or your pet fluffy.


Equipment: 

Soldering Iron
Solder
Thin flat screwdriver or knife
Xbox dvd playback kit (Don't worry, it will still be usable afterwards) 
Spare USB Wire that I had lying around the place (will be unusable afterwards)
AutoHotKey: Free program to easily create c++ script  
XBDRC: Driver for dongle  

 Instructions: Summary

Special thanks to redcl0ud for creating the wiring and drivers for this device. The wiring and drivers can be found at http://www.redcl0ud.com/ir_wiring.html (mirror)

The only problem with his software is the fact that it is still has a few minor bugs (or it could be my computer), and it essentially remaps the remote keys to that on your keyboard or mouse. It reads in a button from the remote and outputs a keyboard key combination, such as ctrl-x or shift-alt-p. This is great for media controllers, but I wanted to be able to use it like a mouse, program opener, and a slew of other options. This is where AutoHotKey comes into play. You create a script that looks for a key combination, such as shift-alt-p. When it is found, it will run your code. 

A perfect example is when I hit the display button on my remote. XBDRC receives it and outputs ctrl-alt-0. AutoHotKey senses this key combination and runs the selected code. In this case, it looks to see if winamp is open. If it is open, then AHK closes it. If it is not on, AHK turns it on for me. This combination of XBDRC and AHK will allow for an endless amount of possibilities of what you can do from just a remote control. 

Instructions: A Bit More In Depth

1.  Wire up your dongle (http://www.redcl0ud.com/ir_wiring.html)(mirror). If your computer is near your xbox, I would recommend creating the cable to be long enough to be plugged into your computer and xbox at the same time.

2. Install the drivers (http://www.redcl0ud.com/xbcd_rc.html)

3. Test it. Run the xbcd rd program and check the "Show raw data". You should be able to see some values popping up. If not, you should look at the FAQ section on redcl0ud's site.

4. Read the quickstart for AutoHotKey. It is a true quickstart that will get you up and running in under 10 minutes.

5. Download this test file. (code shown below)

6. Set up XBDRC to do the following:

Display:  VK_0, ctrl, alt                             (toggle winamp "on" or "off")
Slect:       VK_Return, ctrl, Win                (left click mouse)
up:           VK_numpad8, ctrl, win           (move mouse up, left, down and right)
down:      VK_numpad2, ctrl, win
left:           VK_numpad4, ctrl, win
right:        VK_numpad6, ctrl, win

7. Run the test file. If everything is set up properly, you should be able to double-click on the file, and a green symbol should be in your  system tray

8. Press an arrow key. This should move your mouse in any of the directions that you wish. If you want to increase the sensitivity, open up the file and change 30 to any value you would like. 

This is just a sample of what you can do. All of the other options that I have are very specific to my computer, so this is just a base. I will warn you that you should not run this script at the same time as playing games like WoW, since it is a form of automation, and will be seen as cheating. 

Best of luck to you, and if you have any questions, Email me at dan84gk@yahoo.com. 

If there is a simple program that you would like for me to write for you, I am willing to do so for a small fee (Gotta pay for school somehow). Just e-mail me with the requirements, and I will let you know what I can do.

 Here is the corresponding code that is pretty simple after reading the AHK tutorial

; AutoHotkey Version: 1.x
; Language:       English
; Platform:       Win9x/NT
; Author:         Dan84gk <dan84gk@yahoo.com>
;
; Script Function: Transforms XBDRC input into computer control

;some helpful hints if you don't read the AutoHotKey quickstart
;'^' = ctrl
;'#' = window key
;'!' = alt
;';' = comment out a line of code

;**************************
;Mouse emulation
;uses both numpadRight and Numpad6 for use when NumLock is on or off
;**************************

^#NumpadRight::MouseMove, 30, 0, 0, R
^#Numpad6::MouseMove, 30, 0, 0, R

^#NumpadLeft::MouseMove, -30, 0, 0, R
^#Numpad4::MouseMove, -30, 0, 0, R

^#NumpadUp::MouseMove, 0, -30, 0, R
^#Numpad8::MouseMove, 0, -30, 0, R

^#NumpadDown::MouseMove, 0, 30, 0, R
^#Numpad2::MouseMove, 0, 30, 0, R

^#Enter::MouseClick,left

   
;****************************
;Display Button
;Power button for Winamp
;****************************
^!0::
IfWinExist Player Window                                                              ;check to see if winamp is open
{
    IfWinNotActive, Player Window, , WinActivate, Player Window, ;highlight winamp
    Send, {ALTDOWN}{F4}{ALTUP}                                               ;send shortcut to close
        
}
else                                                                                                 ;if not open
{
    Run %A_ProgramFiles%\Winamp\Winamp.exe                           ;Change this line to reflect the program                                                                                                         ;that you want to run
    WinWait, Player Window,                                                            ;wait until winamp is up
    IfWinNotActive, Player Window, , WinActivate, Player Window,  ;make sure that winamp is selected
    WinWaitActive, Player Window,                      
    Send, x                                                                                        ;hit the play button (shortcut x)
}   

-------------------------------------------------------------------------------------------------------------------------- 

-------------------------------------------------------------------------------------------------------------------------- 

FAQ 

TheEvilHacker Asks:  hello i just recently seen the post on hackaday and i have built the remote
mod but its strictly for my pc since i have a new 360, well to get to my
question... how do i change it not to look for winamp and check to see if
windows media player is open... since i dont use winamp, but everything else
on your program kicks ass man great job!

Dan84gk: Thanks for the feedback. I wasn't even sure if anyone else was interested in it, it took some friends of mine to tell me to even post it.
If you want to change the "power button" to a program other than winamp, you will need to open a program by AutoHotKey called "AutoIt3 Windows Spy". This will tell you almost everything that autohotkey might look at. Click on your program window (in your case, it would be Windows Media Player), and see what it is called. (In this case, it happens to be Windows Media Player).
Now look at the script file. Wherever you see "Player Window" (aka winamp), replace it with "Windows Media Player". This should do the trick. Don't forget to change the path of the program to open from %A_ProgramFiles%\Winamp\Winamp.exe
to wherever you have windows media player installed. 

Also, instead of sending "x" (last line of code), you will want to send whatever key combination windows media player looks for (This is a small tweak that I like, but you may not). Best of luck, and if you need anything else, let me know.
Good luck!

-------------------------------------------------------------------------------------------------------------------------------- 

EB Asks:

Hello,
      I saw this mode on hackaday and I had two recievers for my remote and thought I colud try out this mod. instead of cracking open the reciever I just used a wire that I had found a while back that converts from the xbox cable to usb. I hacd been using this wire with XBCD so I could use the controller on my computer. Anyway, when I start up the computer and open XBCDRC the remote works fine, except I can't change the sensitivity of the mouse. But if I close XBCDRC I can no longer open the program again and when ever I do press the remote I recieve an error message saying access violation at address 00458147 in module 'XBCDRC.exe" read of address 00000100. I have no idea what this means, but you seem to have more of an idea about computers than I, as I have only had an actually working computer for about 2 years now. if you have any suggestions please help.
                                                                           Thank you,
                                                                             EB

Dan84gk: I have had this problem many, many, many times. It is a bug with XBCDRC where you have to hit the exit button on the form to quit. It has garbage collection issues, meaning that if you don't do it this way, then it will still be using resources on your computer. Use the three finger salute (ctrl-alt-delete) and get into the task manager. Go to the processes tab and look for XBCDRC.exe. End that process. This will allow you to restart XBCDRC and get rid of those errors.

As for the mouse sensitivity, I would look at the AHK help file on mouse movement for the best fix. However, for a quick answer, I would right click on the script, select "Edit script", edit the script in notepad, and change the 30 to your value, say 10. Do it to every instance of 30 (30 becomes 10, -30 becomes -10, ect) and save. Run the script again, and it should work. Good luck, and let me know if you have any other issues.

-------------------------------------------------------------------------------------------------------------------------------------------------------------------- 

EB Says:

Thank you for the help with the messages that really helped. The mouse I finaly figured out and put on the remote two actual d-pads for the mouse. The first is the original mouse you put on the arrows, I then added on that is a fine addjustment to the number pad on the remote, that way I can move quickly to a target, such as a hyperlink, and then fine addjust to get the mouse right over the target. I then changed several buttons so that I had hotkeys to web pages, like hackaday. I even took several of the keys on the numberpad and changed then to the arrow keys and enter.  Here's a picture of the remote with the keys marked as to what they do. sorry that it has to be a paint file. God I wish there were more buttons on the remote.
                                                                          Sincerly,
 
                                                                              EB
 
Here is the AutoHotKey file with the XBCDRC 
button layout included at the bottom of the code:  AHK File
 
 
 
 
 
 
 
 
 
 
 
 
--------------------------------------------------------------------------Ad Dump----------------------------------------------------------------------------