Nintendo Extension Ctrl Breakout Board

Now that the library is finished, it’s time to start putting it to use! The first step is building a better breakout board for connecting to the extension controllers.

Existing Breakouts…

From what I could find, there are two types of common breakout boards currently in use: the “stick” breakout and the Nunchucky breakout.

The “stick” breakout is exactly what it sounds like: a regular old breakout in the shape of a stick. This is designed to be manufactured dirt cheap and plug into the Arduino Uno’s analog pin header. It’s manufactured and sold by a bunch of different Chinese companies.

The Nunchucky breakout is what I used for the McCree Hammershot’s Nunchuk support. It’s a larger rectangular board, with an additional pin strip for adding a female header and notches to hold the extension controllers’ retaining clips. This is by far the better option of the two, but it’s still lacking.

…Existing Problems

These breakouts are a great starting point, but they do have their issues. There are three problems that need to be addressed:

#1 – Power Before Data

For some reason, both of these breakouts have all six of their gold contact fingers at the same length. The vast majority of multi-pin connectors have two pins that are longer than the others so that power and ground make first contact. Otherwise when plugging in a device to a ‘hot’ connector, it’s a gamble which two pins will make contact first, sending power in unpredictable and usually undesirable ways.

For the Nintendo extension controllers, the shorter pins are on the receptacle and not the plug. Available breakouts do not abide by these conventions.

#2 – Controller Detect

The Nintendo extension connector has a loopback functionality that connects pin #5 to VCC, allowing the Wiimote to detect whether an extension has been connected without attempting to talk to it over I²C. Neither breakout exposes this pin.

#3 – Data Pull-ups

As each extension controller has varying bus capacitance based on their design, the pull-ups for the I²C bus are on the extension controllers themselves and not the base unit. Nevertheless, the microcontroller requires some small pull-ups so that the bus doesn’t hang if the controller is disconnected. Current breakouts have no pull-ups of any kind, instead relying on the microcontroller to use its own internal pull-ups which are sometimes not available.

The NXCtrl Breakout

The NXCtrl breakout solves all of these problems! The 4 non-power fingers are set back 1 mm from the board edge to ensure the controller powers up before anything else. The “controller detect” pin is exposed with a 10 kΩ pull-down resistor for easy use with most microcontrollers. Finally, both the SCL and SDA lines have 47 kΩ pull-up resistors to prevent the I²C lines from floating if a controller is disconnected. When combined with the typical 1.9 kΩ pull-ups in the Nunchuk and Classic Controller, these give the system a total pull-up strength of roughly 1.8 kΩ.

NXC breakout panel, straight from OSH Park using their auto-panelization.

I ordered a batch from OSH Park and hand soldered the three resistors. I’ve been testing these breakouts with my latest projects, and so far they’re doing really well – they’re easier to set up than the other breakouts and having access to the controller detect pin is quite useful. This may only be version 1.0, but I don’t think I would change a thing. The layout is good, the silkscreen is clear, and the cutout for the connector is spot-on.

I’ve got at least two projects using these breakouts in the works. Watch this space!

Building a DIY Stream Deck (Mini Macro Keyboard)

I’ve been doing a little streaming on Twitch (hiya!), and a lot of streamers I follow have something called an Elgato Stream Deck. The Stream Deck is a small device with 15 buttons, each of which has its own customizable RGB icon. By configuring the bundled software, users can set button icons and macros to control your casting software, send messages in the stream chat, launch programs, and much much more.

Unfortunately the Stream Deck is out of my price range, at a whopping $149.99 retail.  Fortunately I think I can make something that replicates the basic functionality for a fraction of that price: what I’m calling a “Stream Cheap”.

Although I’m focusing on using this as a replacement for a Stream Deck, at heart this is really a custom macro keyboard. It could be used as a hotkey board for any program. I’m just using it for OBS and Twitch.

Continue reading “Building a DIY Stream Deck (Mini Macro Keyboard)”

DIY PC Footswitch Using a Sustain Pedal

A couple of years ago I picked up an inexpensive sustain pedal for an electric piano at a garage sale. The piano itself wasn’t much to look at, but the pedal intrigued me… it’s a basic on/off switch, but the pedal itself feels fairly robust and I thought it would be a handy switch to have around.

This past week I finally got around to doing something with it! I built a small box that converts the signal from the pedal into a keypress, allowing me to use this pedal as a foot-controlled hotkey for my PC.

Continue reading “DIY PC Footswitch Using a Sustain Pedal”

Relay Boxes for Controlling 120V Power with a Microcontroller

For one of my recent projects, I needed a way to control some lights powered by a 120V household wall socket. Rather than reverse-engineering some commercial “smart outlets” for the task, I decided to try and do this the old-fashioned way by embedding relays in electrical boxes.

Continue reading “Relay Boxes for Controlling 120V Power with a Microcontroller”

McCree Hammershot: Nunchuk Movement

The McCree controller is so close to being done! There’s one last change to make: swapping out the DDR dance pad for a faster controller. That ‘faster controller’ is going to be a Wii Nunchuk, the one-handed extension controller for Nintendo’s 7th generation console.

Continue reading “McCree Hammershot: Nunchuk Movement”

How to Use a Wii Nunchuk with an Arduino

When the Nintendo Wii was released in 2006, there was a lot of talk about their new weird control system. In place of a typical control pad, players would use a one-handed “remote” with infrared sensors and accelerometers in place of a joystick. For those games that required additional controls, players would use an accessory controller in their off-hand.

This ‘accessory’ controller is the Nunchuk. A strange, bean-shaped attachment with a joystick, two buttons, and a three-axis accelerometer. Although the Nunchuk had a lukewarm response when it was first released, it’s the perfect controller for makers who want to add some fine control to their projects.

Although I’m writing this post with Arduino in mind, most of this information also applies to using a Nunchuk with something like a Raspberry Pi or an ARM-based board.

Let’s get started!

Continue reading “How to Use a Wii Nunchuk with an Arduino”