The GameCube controller is a favorite among the console enthusiasts new and old, and with Nintendo’s recent release of the Smash Bros. edition of this controller, this is a controller that has been in production for a very, very long time. [Garrett] likes using the GameCube controller on his PC, but this requires either a bulky USB adapter, or an off-brand GameCube ‘style’ controller that leaves something to be desired. Instead of compromising, [Garrett] turned his GameCube controller into a native USB device with a custom PCB and a bit of programming.
First, the hardware. [Garrett] turned to the ATtiny84. This chip is the big brother of the ubiquitous 8-pin ATtiny85. The design of the circuit board is just under a square inch and includes connections for the USB differential pairs, 5V, signal, and ground coming from the controller board.
The software stack includes the micronucleus bootloader for USB firmware updates and V-USB to handle the USB protocol. There are even a few additions inspired by [Garrett]’s earlier shinewave controller mod. This controller mod turns the GameCube controller into a glowing hot mess certain to distract your competitors while playing Super Smash Bros. It’s a great mod, and since [Garrett] kept the board easily solderable, it’s something that can be easily retrofitted into any GameCube controller.
24 thoughts on “Converting A GameCube Controller To USB”
Euhm, where’s the source post/buildlog/blog?
I came here to say the same thing…
You could always get an adapter, make a drive bay mount for it and stick it in your PC.
I’d say there are definitely non-bulky solutions out there, like this one:
(This guy makes all sorts of controller adapters and other retro gaming stuff — I used a modified version of one of his designs when I built my MAME cabinet’s control panel.)
Not to take away from the project (which is sweet), but once again, I’m confounded how Atmel parts even exist. Why on earth would you bit-bang USB in software on a $1.70 MCU, when you can buy a USB-equipped MCU like a Silicon Labs EFM8UB1 for literally *half* the price?
Agreed, but in cases like this it’s usually because people want their hack to be as easily reproducible by others as possible in which case Arduino (or rather its simplified tool chain) is the more attractive option. If the project actually needed to do any serious work then he might have been forced to reconsider, but you know…joystick!
I had never heard of the EFM8UB1, so I googled up a datasheet. It looks like quite a nice micro, almost-nonexistent Digikey stock notwithstanding. Internal regulator, direct link to USB, all the IO I could need.
So I then started to look into how I would integrate this chip into my projects, and then I discovered why Atmel still holds my heart. After 30 minutes of searching, I was able to deduce that its programs appear to be written in C. The only compiler I found was the one built in to the manufacturer’s own IDE. All the documentation for the API appears to be in the IDE as well.
I never found any code written for the EFM8UB1. There isn’t any community of users. No one is putting libs out on github for this thing. I’d be completely alone.
Even discounting arduino-related results, if I been trying to learn how to use an AVR, I would have quickly found avrdude, avr-gcc, the AVRFreaks forum, and all sorts of libraries to show me how to talk the language of this thing. That’s why Atmel is still in business, or at least why they’re still in my business.
If you want to take the hobbyist approach to MCU development — using GCC command-line tools, avoiding the manufacturer’s official IDE and app notes, and getting all your code from blog posts, Instructables, and random GitHub repos you stumble upon, then yeah, the EFM8 (or any other non-Atmel MCU) isn’t for you.
Manufacturer-supplied toolchains and code examples have historically been expensive and kind of buggy, but all that has completely changed in the last five years. Almost all of them are free (or effectively free, given most projects’ code-size constraints), and quite lovely to use. I’d highly recommend hobbyists re-evaluate these toolchains when picking parts.
http://www.amazon.com/Retro-GameCube-Style-Wired-Controller-Pc/dp/B00HS7LJ2G Just saying
“You can also buy GameCube “style” USB controllers from third party manufacturers, but those tend to be pretty bad quality.”
“tend” is a huge understatement in this context… they all suck, without exception, compared to the original GC controller.
Please don’t say ‘hot mess’… ever.
hot mess is on fleek.
Hot mess is definitely older than fleek, but still.
What I want to know is: Where did he get that cable from? If I stop being lazy I’m going to finish off my NeGcon USB conversion, I’d love a cable like that for it.
I just used a pretty cheap cable off of Amazon. The cord broke from strain near the microUSB port, so I cut it below the break and used it in this project. You can order them here: http://www.amazon.com/iSeeker-Tangle-Free-Gold-Aluminum-Connectors-Motorola/dp/B00XVPWLSK?ie=UTF8&psc=1&redirect=true&ref_=oh_aui_detailpage_o09_s00
Would it be possible to do this in reverse?
I would love to purchase the wiiU “link” controller and use a gc male port to play gc..
What would happen if you just wired the usb lines and reversed the direction?
Im pretty viod with wiring but those circuits look a little complex for me to find parts/build.
It’d be possible, but a bit more complex than what you’re probably thinking. You’ll need to build a device that can act as a “host” to the Wii U controller and translate its inputs into the Gamecube’s format. Since you’re heading in the opposite direction, very little of the code I’ve written would be useful.
I do not understand very well which communication protocol uses GC control so I wonder if I make this conversion to USB my nintendo switch will be able to recognize it?
will the usb mod work for my switch or just pc
If anyone is looking for one of these I have these for sale on eBay right now. I have more if someone wants to buy an individual one and not the whole lot of 40.
Please be kind and respectful to help make the comments section excellent. (Comment Policy)