Here's a quick video demo;
It's a perfect fit on the Wii Wheel, but you can mount it on just about anything. Why not put it on a helmet or your arm or leg?
Step 1: FAQ
The Motion Controller is similar, but improves on the wiimote in a few key areas;
- USB Connection: your computer doesn't need bluetooth, and there are no batteries to run out.
- Multiple OS Support: uses standard USB HID protocol, so no drivers are necessary.
- Software Upgradeable: upgrading the Motion Controller firmware is easy via USB.
- Higher Quality Sensor: the accelerometer used (ST LIS331AL) has a significantly higher sampling bandwidth for more accurate and more responsive gameplay.
- Hackable: buttons can be easily mounted on a case, on a steering wheel, or anywhere else you prefer. Configuration utility lets you further customize your controller to fit your exact preferences.
If your operating system supports the USB Keyboards, it should work fine with the Motion Controller. That includes all modern operating systems like Windows, OS X and Linux.
Is there any Surface Mount Soldering?
Nope! Accelerometers are only available as surface mount devices, but the Motion Controller uses an accelerometer breakout board (The Acc_Gyro) that comes pre-assembled.
Where can I mount it?
It was designed to be easiest to mount into an official or generic Wii wheel, and the pin headers act as prongs to lock the Motion Gamepad in firmly, but it can be mounted into nearly anything, and mounting holes are drilled on the board.
The Motion Gamepad and Acc_Gyro Board were designed by Starlino. The Motion Gamepad is available as a kit from Gadget Gangster.
Step 2: Preperation: Tools
You'll need a few tools to assemble the project;
1 - Soldering Iron and solder. Leaded solder is easier to work with, and a 15-40 watt iron is just fine. A conical or chisel tip works well.
2 - Dikes. Diagonal cutters are used to trim the excess leads from components after soldering them down.
Step 3: Preperation: Parts
Motion Gamepad PCB
Source: Gadget Gangster
Mouser Part #: 579-PIC18F14K50-I/P
If you get this with the kit, it will come pre-programmed (and can be upgraded via usb). Otherwise, you'll need a PICkit to program it.
10k ohm Resistor
Marked: Brown - Black - Orange
.47uF Radial Ceramic Capacitor
Mouser Part #: 80-C320C474M5U
.1uF Axial Ceramic Capacitor
Mouser Part #: 80-C410C104K5R-TR
18pf Radial Ceramic Capacitor
Mouser Part #: 140-50N5-180J-TB-RC
10uF Radial Electrolytic Capacitor
Mouser Part#: 647-UVR1V100MDD1TD
Mouser Part#: 815-ABL-12-B2
Mouser Part#: 653-B3F-1000
20 Pin DIP Socket
Mouser Part#: 517-4820-3004-CP
Source: Gadget Gangster
USB A Plug - Wire Cable
MCP1700 (5V, TO-92)
Mouser Part#: 579-MCP1700-3302E/TO
Step 4: Make: Step I
Bend the leads at a 90 degree angle, and insert them in the board. Flip over the board, solder them down, and trim off the excess leads.
Step 5: Make: Step II
The Orange disc shaped caps should have an '18' marked on them. Those caps go at C1 and C2. These caps are not polarity sensitive, so it doesn't matter which way you insert them.
There's a .1uF axial ceramic capacitor, it goes at C4. Axial means the wires come out the ends - like a resistor. You might be able to see the marking on the body of this one - it's '104'. It is also not polarity sensitive.
C3 is the last ceramic capacitor. it's .47uF, you can verify you've got the right one by checking the marking on the body, it should have the number '474'. It's also not polarity sensitive.
Now for the final capacitor, it's an electrolytic capacitor and it goes in C5. The value is 10uF, and it is polarized. The stripe on the body of the component should go closer to the word 'stripe' on the circuit board.
Step 6: Make: Step III
The Crystal goes at XT. The crystal is not polarized, so it doesn't matter which lead goes in which hole.
Now for the buttons;
The most common way of adding the buttons is directly on the board. To do this, just flip the pcb over and snap them in. Flip the board back and solder them down.
If you want to install the buttons somewhere else (like on the top of a steering wheel), use a bit of hookup wire to connect the button to the hole it would normally go in.
Finally, add the DIP socket on the board at the spot marked 'PIC'. Note that the notch on the socket should point left (closer to the word 'PIC').
Step 7: Make: Step IV
To Socket or Not To Socket
The kit also comes with pin sockets - you can add pin sockets to the Motion Gamepad PCB at the area labeled 'AccGyro' and slide the Acc_Gyro Board into the socket. The advantage of using sockets is that you'll be able to remove the Acc_Gyro Board and use it for other projects.
Personally, I found it easier to forgo using sockets. I just soldered the pin headers straight to the board and cut off the extra length of pin headers on the other side. I won't be able to re-use the accelerometer on other projects, though.
Step 8: Make: Step V
Step 9: Make: Step VI
Trim off the outer rubber jacket and excess shielding from the USB Cable. You'll see 4 wires inside the cable. You'll want to expose about 6" of those wires - strip the conductor and tin the leads of each.
Run them in the top hole and back through the bottom hole, as shown in the image. Once they're through, you'll connect each wire to the board;
Lastly, put the PIC in the socket - note the notch points to the left.
Step 10: Other Mounting Ideas
Step 11: The Acc_Gyro Board
An enhanced version of the Acc_Gyro is available separately - it adds a Gyroscope to give a 5DOF Inertial Measurement Unit (IMU) with 5V and 3V capability. There's a ton more info on using the Acc_Gyro here. Full pinout information is available in PDF format, but to summarize:
P13: GYF, Gyro non-amplified, filtered Y-axis Output
P15: GY4, Gyro amplified (x4), Y-axis Output
P16: VREF, Gyro Reference Voltage (1.25V, fixed)
P17: GX4, Gyro amplified (x4), X-axis Output
P18: GXF, Gyro non-amplified, filtered X-axis Output
P26: ST, Gyro self test (logic 0 = normal, 1 = self test mode)
P27: PD, Gyro power down (logic 0 = normal, 1 = power down mode)
P28: HP, Gyro high pass filter reset (logic 0 = normal, 1 = Reset HP filter)
P29: 3V3, Voltage regulator output (3.3v)
P30: Supply Voltage input, 5v
P31: GND, Ground
P32: AZ, Accelerometer Z-axis analog filtered output
P33: AY, Accelerometer Y-axis analog filtered output
P34: AX, Accelerometer X-axis analog filtered output
Using the Accelerometer
The accelerometer measures acceleration around several axis. If you set the Acc_Gyro board on the table as shown in the photo above, the Z axis will experience 1G and AZ will output 1.17V. The X and Y axis' don't have gravity pulling on them, they're at 0G, and will output 1.65V.
If you put it on the table upside down, the X and Y axis' would still have 0G of acceleration, so you'd get AX = 1.65V, AY = 1.65V, and AZ = 2.13V. The Acc_Gyro board is capable of measuring accelerations of +/-2G (+/-19.6m/s^2) along any axis. 2G is the same as going from 0 to 44mph in 1 second. When an axis experiences +2G, it will increase voltage to 2.6V. When it experiences -2G, it will decrease voltage to .7V.
Please note that gravitation force (directed from sky to ground) has same effect on the device as if you would accelerate the device in an opposite direction, in a place with no gravitation field. So keep this in mind if you're planing to use the device for something like measuring the acceleration of your car or bike.
Step 12: Downloads
The Motion Gamepad uses standard HID drivers, but you can use the IMU configuration utility (windows) - download here to do an enhanced setup / calibration. Starlino has done a great guide on setting it up with the IMU utility here (pdf).
The HEX for the PIC is here. As a kit, the PIC comes pre-programmed, and the way it's programmed, you can update the firmware with a little update utility - here.
Here's the board layout and schematic (eagle format)
Get the kit at Gadget Gangster.