Reverse Engineering the Nintendo Wavebird

Readers who were firmly on Team Nintendo in the early 2000’s or so can tell you that there was no accessory cooler for the Nintendo GameCube than the WaveBird. Previous attempts at wireless game controllers had generally either been sketchy third-party accessories or based around IR, and in both cases the end result was that the thing barely worked. The WaveBird on the other hand was not only an official product by Nintendo, but used 2.4 GHz to communicate with the system. Some concessions had to be made with the WaveBird; it lacked rumble, was a bit heavier than the stock controllers, and required a receiver “dongle”, but on the whole the WaveBird represented the shape of things to come for game controllers.

Finding the center frequency for the WaveBird

Given the immense popularity of the WaveBird, [Sam Edwards] was somewhat surprised to find very little information on how the controller actually worked. Looking for a project he could use his HackRF on, [Sam] decided to see if he could figure out how his beloved WaveBird communicated with the GameCube. This moment of curiosity on his part spawned an awesome 8 part series of guides that show the step by step process he used to unlock the wireless protocol of this venerable controller.

Even if you’ve never seen a GameCube or its somewhat pudgy wireless controller, you’re going to want to read though the incredible amount of information [Sam] has compiled in his GitHub repository for this project.

Starting with defining what a signal is to begin with, [Sam] walks the reader though Fourier transforms, the different types of modulations, decoding packets, and making sense of error correction. In the end, [Sam] presents a final summation of the wireless protocol, as well as a simple Python tool that let’s the HackRF impersonate a WaveBird and send button presses and stick inputs to an unmodified GameCube.

This amount of work is usually reserved for those looking to create their own controllers from the ground up, so we appreciate the effort [Sam] has gone through to come up with something that can be used on stock hardware. His research could have very interesting applications in the world of “tool-assisted speedruns” or even automating mindless stat-grinding.

Case Modding The Old School Way

Since the release of the Raspberry Pi, the hallowed tradition of taking game consoles, ripping all the plastic off, and stuffing the components into nice, handheld form factors has fallen off the wayside. That doesn’t mean people have stopped doing it, as [Akira]’s masterful handiwork shows us.

This casemod began with a Nintendo GameCube ASCII keyboard controller, a slightly rare GameCube controller that features a full keyboard smack dab in the middle. While this keyboard controller was great for Phantasy Star Online and throwing at the TV after losing Smash, the uniqueness of this controller has outshadowed its usefulness. [Akira] began his build by ripping out the keyboard and installing a 7 inch LCD. It fits well, and makes for a very unique GameCube case mod.

The rest of the build is about what you would expect – the motherboard for a PAL GameCube is stuffed inside, a quartet of 18650 batteries provide the power, and the usual mods – a memory card is soldered to the motherboard and an SD Gecko allows homebrew games and emulators to be played.

The completed project is painted with the same theme as [Samus Arans]’ Varia suit, making this a one of a kind casemod that actually looks really, really good.

Converting A GameCube Controller To USB

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.

Shinewave Gamecube Controller Reacts to Smash Brothers

[Garrett Greenwood] plays Smash Brothers, and apparently quite seriously. So seriously that he needed to modify his controller with five Neopixels so that it flashed different color animations according to the combo he’s playing on the controller; tailored to match the colors of the moves of his favorite character, naturally.

All of this happens with an ATtiny85 as the brains, which we find quite ambitious. Indeed, [Garrett] started out thinking he could simply read each of the inputs from the controller directly into the microcontroller at the heart of the whole thing, but then counted up how many wires that would be, and looked at how many pins he had free (six), and thought up a better solution.

[Garrett]’s routine instead reads the single line that the Gamecube controller uses to send back to the console. The protocol is well understood, using long-short and short-long signals to encode bits. The only trick is that each bit is sent in four microseconds, so the decoding routine has to be fairly speedy. To make it work he had to do quite a bit of work. More about that, and the demo video, after the break.

Continue reading “Shinewave Gamecube Controller Reacts to Smash Brothers”

Inexpensively Replace A Worn Out N64 Joystick

The Nintendo 64 is certainly a classic video game system, with amazing titles like Mario Kart 64 and Super Smash Bros that are still being played across the world today. But, like finding new parts for a classic car, finding an original controller that doesn’t have a sad, wobbly, worn-out joystick is getting to be quite the task. A common solution to this problem is to replace the joystick with one from a Gamecube controller, but the kits to do this are about $20USD, and if that’s too expensive then [Frenetic Rapport] has instructions for doing this hack for about $2.

The first iteration of using a Gamecube stick on an N64 controller was a little haphazard. The sensitivity was off and the timing wasn’t exactly right (very important for Smash Bros.) but the first kit solved these problems. This was the $20 kit that basically had a newer PCB/microcontroller that handled the Gamecube hardware better. The improvement which drove the costs down to $2 involves modifying the original PCB directly rather than replacing it.

While this solution does decrease the cost, it sacrifices the new potentiometer and some of the easier-to-work-with jumpers, but what was also driving this project (in addition to cost) was the fact that the new PCBs were becoming harder to get. It essentially became more feasible to simply modify the existing hardware than to try to source one of the new parts.

Either way you want to go, it’s now very easy to pwn your friends in Smash with a superior controller, rather than using a borked N64 controller you’ve had for 15 years. It’s also great to see hacks like this that come together through necessity and really get into the meat of the hardware. Perhaps we’ll see this controller ported to work with other versions of Super Smash Bros, too!

Hackaday Links: March 8, 2015

Nintendo is well known for… odd… hardware integration, but this video takes it to a new level. It’s a Gamecube playing Zelda: Four Swords Adventure, a game that can use a Game Boy Advance as a controller. [fibbef] is taking it further by using the Gamecube Game Boy Advance player to play the game, and using another GBA to control the second Gamecube. There’s also a GBA TV tuner, making this entire setup a Gamecube game played across two Gamecubes, controlled with a Game Boy Advance and displayed on a GBA with a TV tuner. The mind reels.

TI just released a great resource for analog design. It’s the Analog Engineer’s Pocket Reference, free for download, if you can navigate TI’s site. There are print copies of this book – I picked one up at Electronica – and it’s a great benchtop reference.

A few months ago, a life-size elephant (baby elephants are pretty small…) was 3D printed at the Amsterdam airport. A model of the elephant was broken up into columns about two meters tall. How did they print something two meters tall? With this add-on for a Ultimaker. It flips an Ultimaker upside down, giving the printer unlimited build height. The guy behind this – [Joris van Tubergen] – is crazy creative.

And you thought TV was bad now. Here’s the pitch: take a show like Storage Wars or American Pickers – you know, the shows that have people go around, lowball collectors, and sell stuff on the Internet – and put a “Tech” spin on it. This is happening. That’s a post from a casting producer on the classic cmp message boards. Here’s the vintage computer forums reaction. To refresh your memory, this is what happens when you get ‘tech’ on Storage Wars. Other examples from Storage Wars that include vastly overpriced video terminals cannot be found on YouTube. Here’s a reminder: just because it’s listed on eBay for $1000 doesn’t mean it’ll sell on eBay for $1000.

Gamecube Robot is More Than Meets The Eye

[Joshua] had his old Gamecube kicking around. Rather than let it gather dust, he took it into the machine shop at Harvey Mudd College and used its body as the shell of a mobile robot. With a bit of thought, it turns out that you can fit quite a lot inside the rather small Gamecube case. [Joshua] started with a couple of R/C plane style brushless outrunner motors. These motors generally give more torque and spin slower than their inrunner counterparts. Several thousand RPM was still too fast to directly drive the LEGO tires though. He needed a gear reduction.

Gears and tight spaces usually send people running for the SDP/SI website. We’ve used SDP/SI parts before, and have found that they make incredibly accurate gears and assemblies. Things can get pricey, however, when you’re buying two of everything. In search of a solution a bit more within his college-student-budget, [Joshua] looked at radio control servos. R/C servos have some rather strong output gears, especially the metal gear variety. Even with strong gears, parts do break in crashes, so replacement gear sets are available and cheap. [Joshua] settled on gears made for Hitec servos. His next problem was finding a pinion gear for his motors. That turned out to be easy, as 64 pitch gears commonly used in RC cars mesh with metric servo gears.  The final results are great. His robot has tons of torque and plenty of speed to zip around. The only thing it’s missing is a brain. Videos after the break.

Continue reading “Gamecube Robot is More Than Meets The Eye”