Gamecube Controller Serial Data Interface?
wafers
Posts: 2
Hello, I'm wondering if this project is possible & looking for tips on getting started.
I hope to send digital data serially to my Gamecube through my Gamecube controller, when a particular button is pressed. This is essentially a macro controller, where a button press will send a sequence of button presses to the console. Hoping for the cheapest, easiest option, as I need to complete this project as soon as possible. I'm really not sure where to start, and any links to informational resources or advice would be greatly appreciated.
Thank you,
wafers (:
I hope to send digital data serially to my Gamecube through my Gamecube controller, when a particular button is pressed. This is essentially a macro controller, where a button press will send a sequence of button presses to the console. Hoping for the cheapest, easiest option, as I need to complete this project as soon as possible. I'm really not sure where to start, and any links to informational resources or advice would be greatly appreciated.
Thank you,
wafers (:
Comments
I'll see if I can fish out my Atari controller based on the same concept.
It's not Gamecube, but the concept should work the same.
OBC
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?
Visit the: The Propeller Pages @ Warranty Void.
First, find the data line on the gamecube controller and attach a transistor to that line in open drain fashion. Most data lines for such things are idle high... but the technology may differ so you need to find out how to interface with the line.
Then make one pin an input on the propeller chip that is directly atttached to the line through a small resistor and another pin that is an output controlling the transistor. Make sure to use resistors where nessary.
Basically, just log the data that travels through the line when a button is pressed to see what command needs to be sent through the data line for a particular button.
Then use some tables and pattern matching (you do that your self - no math or program required) to firgue out the exact stream of commands that need to be sent.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Nyamekye,
http://www.gc-linux.org/docs/yagcd/chap9.html#sec9
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Composite NTSC sprite driver: http://forums.parallax.com/showthread.php?p=800114
NTSC color bars (template): http://forums.parallax.com/showthread.php?p=803904
The controller uses one bi-directional data line (Pin 2 - Red) to communicate with the console. This is an active high 3.43V logic signal, using a pull-up resistor to hold the line high, and pulling it low with an open-collector transistor when a low needs to be transmitted. Communication is initiated by the console sending a 24-bit string to the controller, after which the controller responds with 64-bits of button state and joystick data.
Although I first thought that the controller had an internal pull-up resistor (measured 745 ohms), in practice I had to use an external 1K pull-up resistor between the 3.43V rail and the the data line in my prototype interface.
The transfer speed is rather fast at around 4us per bit. As with the N64 controller, a low bit is signalled by a 3us low followed by 1us high, and a high bit is signalled by 1us low followed by 3us high. Yes, it's just like the N64 controller!
I think I'm looking for information on sending digital data, and which type(s) of microcontrollers would be best for the job, but I'm not entirely sure that this is what is necessary. Thanks for the replies! Research leads me to believe that a PIC with UART will do the trick ... still researching.
Post Edited (wafers) : 6/15/2009 8:32:02 PM GMT
There are other controllers which would be easier to program like the old Atari joysticks but they aren't the most advanced.
DogP