Basic idea of the XERC
The basic idea behind the XERC is to be able to turn on/off your XBOX by remote. The XBOX has the DVD dongle add on that lets you control DVDs and menus and such. The problem is, Microsoft wanted to make the XBOX as cheap as possible, and to avoid having to pay license fee for the dvd player for every xbox sold they chose to make the dongle and remote an add on. Now comes the problem; The add on is connected via the controller ports. The controller ports are USB, and they don't get any power when the xbox is off, thus the DVD dongle doesn't get any power and you can't turn the xbox on.
So that is the reason we have to have an add on like this.
What do we need for this?
To do this we need to decode and interpret the singals that the remote sends out. To do this we need a IR-module to recive the IR-signals and a small MCU to decode them. For this I initially chose the ATtiny15 because of the cheap price and the small size. Since then the ATtiny25/45/85 series, that has bigger flash memory and some sram than the ATtiny15, has come out and I have thus switched to using that MCU.
How do you turn the xbox on?
The front buttons on the XBOX are simple momentary push buttons. They are connected like this:
So what we see here is a Pull-up resistor pulling up the signal to 3.3V and then a push button that when pushed will connect the signal to ground. This is then connected through a signal resistor to a pin on the PIC/XYCLOPS. The PIC/XYCLOPS can then sense that a button was pushed when the pin goes from a high voltage to a low voltage.
To emulate a press on the button we can simply connect a pin on our mcu to the right side of the switch and simply ground that pin when we want to emulate a button press. The mcu just has to be able to sink 3.3V/10kohms = 0.33mA and that is no problem.
Info on remote protocols
There is allready a really good page on remote protocols so I'm not gonna dig further into that here. You can read about many types of protocols here. Unfortunately he has no info about the RCA protocol (and there is none to be found on the web). So I just sat down and wrote down what I have figured out. I sent him this page that I did with all the info and lets hope he puts it on his site.
Hardware of the XERC 2
The XERC 2 is built arround the attiny45 mcu. It is a pin compatible upgrade from their attiny15 mcu. But the pin compatibility is pretty much everything they have in common, the new attiny15/45/85 series a much better architecture and can thus perform more complex tasks. This is the brains of the XERC 2, it recieves and decodes the signal from the IR-module and controls all output signals.
Schematic and parts:
And here is the part list:
|C1||4.7uF electrolytic capacitor||-|
|C2||0.1uF Ceramic Capacitor||-|
|Q1||2n3906 PNP transistor||-|
|-||TSOP32156 IR-module||2.7-5.5V supply voltage.|
|-||8-pin dip socket||
Socket if you want to be able to
to remove the ATtiny45.
If you don't want to use the
eject led in the xbox.
ATtiny15/25/45/85 ISP programmer connection:
This is how the ISP programming header is connected to the attinyx5 series.
Source code and precompiled firmwares
You can download the source here. You will also find precompiled hex files there.
Editing/compiling the code
There are many different editors and compilers for assembler code for the atmels. I used Atmels AVR studio that is free.
AVR studio 4
AVR Studio 4 is an easy to use editor and compiler. It has most of the functions that you could want and an excellent simulator that will come in handy when simulating your additions to the programs. To compile (and edit) you xerc code you do like this:
- Extract the sourcecode to a empty directory
- Open AVR Tools 4 and create a new project with no entry file
- Add (by right clicking on the "Assmbler" folder on the left hand side and choosing "Add existing file") the entry file to the project (as this is the first file you add it will be set as the entry file, if its not, then right click that file and press "set as entry file")
- Now you can edit the code and then build (compile) it by pressing "F7"
- Press F7 the first thing you do to get all the included files easily accessible on the left hand side
AVR tools can be downloaded here.
Programming the MCU
After you have compiled/downloaded a hex file you need to program the mcu with it. To do that you'll need a programmer and some programming software.
There are a ton of different AVR programmers out there. I'm just link you to some easy and cheap ones I have found and if you want more info you can always visit avrfreaks.
- STKxxx Compatible ICSP - The one I use
- An easy to build/cheap serial programmer
- A simple USB programmer - I haven't tried it
There is also a hoard of programming software for AVRs, but not that many that are free and up to date. The best open source free programming software out there is without a doubt avrdude.
© 2007—2018 SICKmods