Salamax - Xbox 360 Controller Bridge for Teensy or TI-84 Plus/Silver Edition

Salamax - Xbox 360 Controller Bridge for Teensy or TI-84 Plus/Silver Edition

Latest versions:

Want to know more about the protocol used by the Xbox 360 and controller? Check here.

Salamax is a combination of PC and TI graphing calculator applications that allows you to control an Xbox 360 from a PC, and therefore, any device you can attach to a PC (such as a Wii remote).

Why do you need this semi-complicated setup, you might ask? Because the Xbox 360 employs a security mechanism that prevents people from just attaching any USB peripheral they want to it and using it. This means no aftermarket/third-party controllers, no USB keyboards/mice, and no automation of controller functions.
Devices like the XIM3 (Xbox Input Machine) get around this restriction by sitting in the middle of the console<->controller connection; it allows the security handshake to pass freely between console and controller, but sends its own button press events instead of the controller's.

This works along that same principle. You can use one of two methods:

  1. TI-84 Plus / Silver Edition Graphing Calculator - for this method, you need a TI-84 Plus/Silver Edition graphing calculator and USB silverlink cable. No soldering or assembling of anything is required.
  2. 2x Teensy 2.0 USB boards - for this method, you need two Teensy 2.0 USB development boards ($15 each), and 3 wires to bridge the TX/RX and GND pins. The solder pads/holes are very large and easy to solder; in fact, you could probably just thread the wires and not even bother with soldering it.

Here's an illustration of the calculator method, since everybody loves pictures:

Xbox 360 controller bridge

The yellow arrow represents a standard USB A<->mini-B cable, like what comes with the graphing calculator.
The green arrow represents a USB silverlink cable (used for PC<->calculator connectivity).
The red arrow represents the wired Xbox 360 controller's cable.
The blue arrow is an optional connection to some other controller/device -- in this case, a wireless Bluetooth connection to a Wii remote.

These are the connections you need to make between the two Teensy 2.0 USB boards:

2x Teensy 2.0 USB development boards

See github.com/brandonlw/USBSimulator for more information about how to wire them together, and how to use them.
For convenience, I already built the two HEX files you'll need to flash here.

So why would you possibly want to do this? You'd want to do this if you meet all of the following conditions:

...OR...

If you don't fit into the above categories and/or still don't get it, I just can't help you.

These applications are open source and have no license attached to them, so you're free to do whatever you want with them; but please don't slap your name on them and call them your own, it's just rude. Plus you'll probably go to hell for it.

SVN repositories containing the source code for each application:

Frequently Asked Questions

Will I still be able to use my calculator like normal after this? Can this cause damage to my calculator?
This is just a FLASH application like any other you would download off education.ti.com or ticalc.org and has no impact on other functionality. There is always the potential that the application could reset RAM, so back up anything important on your calculator to your computer before running this. I'm not responsible for anything that happens from you choosing to run this application.

Do I need a special cable for the calculator method?
Yes, you need what's called a "silverlink" cable. It is USB on one end and 2.5mm serial I/O on the other end, made by Texas Instruments for you to exchange variables between your calculator and a PC. It MUST be a silverlink cable made by Texas Instruments; non-standard "USB<->2.5mm" adapters (like you find with cheap PDAs) will NOT work.

What OS version does my calculator need to be on for this to work?
OS 2.30 or above. You can get the latest version (currently 2.55MP) at education.ti.com, though if you still have the OS upgrade file for 2.43 or below, I recommend you use that instead. (2.53MP and up is horribly unstable.)

I get "ERR:VERSION" when I run the calculator application! What's wrong?
Upgrade to OS 2.30 or above.

How do I get this on my calculator?
Do some reading and/or googling. You will need link software like TI Connect (Windows/Mac OS X) or TiLP (Windows/Linux) and a cable to connect your calculator to your computer. Since you need a silverlink to use this at all, you surely already have one of these cables.

What do I do after running the calculator application?
Select option 1 ("Start Bridge") and do what it and the readme tells you to do.

Will this work on my TI-84 Plus (non Silver Edition)?
Yes.

Will this work on the TI-84 Pocket.fr?
Yes.

Can this be ported to the TI-89 Titanium?
Yes, but I haven't gotten around to it, and unless this actually manages to catch on, I probably won't.

Will this work on the TI-83 Plus or TI-83 Plus Silver Edition or [xyz]?
No. The TI-84 Plus, TI-84 Plus Silver Edition, and TI-84 Pocket.fr were specially chosen because they have two inputs -- one 2.5mm I/O, and the other USB. This is what makes it a perfect link in the chain -- it can pretend to be the controller when connected via USB to the Xbox 360, and still communicate over 2.5mm I/O. The other models don't have this capability, so there's no way they can work.

Can this be ported to HP or Casio calculators?
Maybe, I don't know. I'm not an HP or Casio person. I can't possibly do it.

Will this work on my TI-Nspire or TI-Nspire CAS? My TI-Nspire can emulate the TI-84 Plus Silver Edition.
No. The Nspire's 84+SE emulator doesn't accurately emulate all the USB controller hardware necessary for this to work.

What tools did you use to assemble/build this?
You can build the calculator project with Zilog Development Studio 3.68, downloadable from zilog.com (or here if you can't find the buried link on their site). You can sign the application by using Wappsign for Windows, which comes bundled with the TI-83 Plus SDK from education.ti.com. The PC version can be built with Visual Studio C# 2010 Express from microsoft.com.

What's with the name "Salamax"? That's the dumbest name I've ever heard.
It's total nonsense, to make you ask exactly this.

How can I scream at you / profess my undying love / ask a question / etc.?
brandonlw@gmail.com.