|
1 |
| -# gcspark |
2 |
| -Low-cost USB adapter for Gamecube controllers |
| 1 | +# GCSpark |
| 2 | + |
| 3 | +The goal of this project is to create a low-cost, easily buildable USB adapter |
| 4 | +for Gamecube input peripherals. |
| 5 | + |
| 6 | +## Why? |
| 7 | + |
| 8 | +I own a Wii dance mat and want to play [StepMania](https://www.stepmania.com) |
| 9 | +on it. |
| 10 | + |
| 11 | +Existing commercial solutions tend to be expensive, and cheaper clones are |
| 12 | +known to have issues. Previously published DIY projects use overpowered |
| 13 | +(and thus expensive) microcontrollers, are hard to build for inexperienced |
| 14 | +people and/or do not implement rumble. |
| 15 | + |
| 16 | +## Overview |
| 17 | + |
| 18 | +I decided to choose the [Digispark](http://digistump.com/products/1) Attiny85 |
| 19 | +development board as the base of this project. Clones of it are affordable and |
| 20 | +very easy to source. The integrated USB plug/port simplifies wiring, and using |
| 21 | +it as an USB device via [V-USB](https://www.obdev.at/products/vusb/index.html) |
| 22 | +is well-documented. Since it is a development board, no ISP is required to |
| 23 | +program it. |
| 24 | + |
| 25 | +Gamecube controllers expect both a 5V and a 3.3V supply and operate on 3.3V |
| 26 | +logic level. To cut down on the amount of external components, a breakout board |
| 27 | +for the AMS1117 LDO is used to supply 3.3V. The bidirectional level shifting |
| 28 | +will be done using a traditional circuit based around the 2N7000 MOSFET, which |
| 29 | +is hopefully able to switch at the required 1 MHz. |
| 30 | + |
| 31 | +Instead of emulating a USB PID (physical interface device) for rumble support, |
| 32 | +which other developers seem to have no luck with, the Microsoft XInput protocol |
| 33 | +will be used. Plain USB HID support may be added in the future, either |
| 34 | +switchable (if memory limitations allow it) or as alternative firmware. |
| 35 | + |
| 36 | +## Cost Estimation |
| 37 | + |
| 38 | +The following estimation is based on the lowest AliExpress prices, including |
| 39 | +shipping to Europe, at time of writing. Some components are primarily available |
| 40 | +in bulk, and the PCS column shows the bulk size. |
| 41 | + |
| 42 | +| Count | Component | Est. Cost | PCS | |
| 43 | +|-------|-------------------------|-----------|-----| |
| 44 | +| 1 | Digispark (clone) | $1.30 | 1 | |
| 45 | +| 1 | AMS1117 breakout board | $1.20 | 5 | |
| 46 | +| 1 | GC extension cable | $2.00 | 1 | |
| 47 | +| 1 | Perfboard | $1.00 | 5 | |
| 48 | +| 1 | 2N7000 MOSFET (generic) | $0.80 | 20 | |
| 49 | +| 2 | 10K resistors | $0.70 | 100 | |
| 50 | +| | Sum | $7.00 | | |
| 51 | + |
| 52 | +The extension cable is only required for the female connector. If one is willing |
| 53 | +to cut off the cable of their controller and hardwire it into the adapter, it |
| 54 | +can be omitted. Shoving solid wire (e.g. Dupont connectors) in the male GC |
| 55 | +connector may also work as a short-term solution. |
0 commit comments