Skip to the content
2 layers70 × 65 mmGame Controller - Front PCB, the printed circuit board in 3D

Game Controller - Front PCB

dmcke5/XWii-Controller59

The Wii U gamepad layout is a fan-favourite for many gamers yet it is rarely used in the current generation of controllers.

Size
70 × 65 mm
Copper layers
2
Thickness
1.6 mm
Parts
54
Nets
49
Pads
150
Tracks, vias
357, 61
Pours
2
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
29 Nov 2024
Updated
1 Mar 2025

Overview

Game Controller - Front PCB is an open-source printed circuit board by dmcke5, from the dmcke5/XWii-Controller repository on GitHub, published under the CERN-OHL-S-2.0 licence. It is a 2-layer board of 70 × 65 mm with 54 parts on 49 nets, routed with 357 tracks and 61 vias.

It is built around the ATMEGA32U4-AU and WS2811. Its parts include 9 switches, 8 resistors, 6 capacitors, 6 ICs and 2 transistors. It belongs with the keyboards and input boards and the AVR (ATmega, ATtiny) boards of this library.

Main components

2

README

README.md

XWii Controller

An Xbox One style controller with a Wii U layout!

Alt text

The Wii U gamepad layout is a fan-favourite for many gamers yet it is rarely used in the current generation of controllers. This open source project brings the Wii-U layout back but in a shape more akin to an Xbox controller and provides you with a cool piece of tech that you can be proud to say you built yourself!

Features:

  • Wii-U controller layout
  • Hall Effect Joysticks
  • Hall Effect Triggers
  • Rumble
  • Xinput Compatible
  • RGB Status indicator home button

For now, this controller is wired only but I plan to add a wireless version of the design at some point in the future!

Print Orientation

If you're printing the housing at home on an FDM printer here's some tips to get the best finish possible!

Front Housing

Stand the front housing on its top edge and lean it forward 45 degrees. Enable supports for surfaces over 55 degrees and use a raft to ensure good adhesion to the bed. Ensure Z seam is on the inside! Only minimal supports should be generated, just to support the bottom of the button holes. If you're using a bed-slinger, orient your part so that it runs with the direction your bed moves to reduce wobble.

Alt text

Rear Housing

Stand the rear housing on its top edge and lean it back 30 degrees. Enable supports for surfaces over 55 degrees and use a raft to ensure good adhesion to the bed. Ensure Z seam is on the inside! Some supports will be generated on the inside but none are in contact with critical surfaces making cleanup relatively easy. Same as the front, ensure orientation matches your bed movements for bed slinger printers!

Alt text

Shoulder Buttons

Shoulder buttons should be printed flat on the bed, to ensure the spring is working with the layers rather than against them. Enable supports so the top edge of the buttons aren't left hanging.

Alt text

Trigger Buttons

Stand trigger buttons on their end and rotate forward 30 degrees. Enable supports for surfaces over 55 degrees and enable raft. Supports should be generated in the holes and for the magnet mount only leaving very little cleanup required.

Alt text

Bill of materials

PCB's

1x Front PCB (Must use ENIG finish!)

1x Rear PCB

3D Printing

1x Controller Housing Top

1x Controller Housing Bottom

1x LHS Shoulder Button

1x LHS Trigger

1x RHS Shoulder Button

1x RHS Trigger

Purchase

1x Switch lite button set - https://www.aliexpress.com/item/1005007266706005.html

1x Switch lite membrane set - https://www.aliexpress.com/item/1005004544710872.html

2x PS5 Hall sensor joysticks - https://www.aliexpress.com/item/1005007688806322.html

1x Xbox rumble motor (pair) - https://www.aliexpress.com/item/1005002877455453.html

2x PS4/5 Trigger Springs - https://www.aliexpress.com/item/1005005844578554.html

2x 3x1mm Neodymium Magnets - https://www.aliexpress.com/item/1005006619263188.html

1x 6028 RGB LED - https://www.aliexpress.com/item/1005003719602946.html

1x WS2811 IC - https://www.aliexpress.com/item/32844615804.html

1x USB Data Cable (End will be removed so only need to ensure it has the correct end for your device on one end of the cable)

Hardware

5x M3x5x5 Threaded Inserts

2x M2x3.2x3 Threaded Inserts

3x M2x3.2x4 Threaded Inserts

5x M3x8 SHCS Screws

6x M2x4 SHCS Screws

PCB Assembly

Front PCB:

Follow the diagram below for locations of components. Pay close attention to orientation of parts U1, Y1, U7 and D1 as they can be fitted in the wrong direction and cause damage. Align marks on all these components with the alignment marks on the PCB.

Alt text

Rear PCB:

Follow the diagram below for locations of components. Fit joysticks to opposite side of PCB.

Alt text

Software

You will need to install these libraries to be able to compile the code:

XInput: https://github.com/dmadison/ArduinoXInput

FastLED: https://github.com/FastLED/FastLED

Then simply compile and upload to your controller using the Leonardo w/xinput board option. Please note, once the code is uploaded you will need to re-flash the bootloader to be able to upload code again due to a limitation in the way the xinput library works.

Parts

54
QtyValueFootprintReferences
4MOSITestPoint:TestPoint_THTPad_D2.0mm_Drill1.0mmM1_N1, M1_P1, M2_N1, M2_P1
310KResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR2, R5, R7
20.1uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC4, C7
21uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC1, C5
222pFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC2, C3
222rResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR1, R6
22N7002Package_TO_SOT_SMD:SOT-23Q1, Q2
2~Parts:MJTP1117U2, U4
1100RResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR8
1AParts:Membrane Button SmallSW1
1ATmega32U4-APackage_QFP:TQFP-44_10x10mm_P0.8mmU1
1BParts:Membrane Button SmallSW2
1Crystal_GND24Crystal:Crystal_SMD_5032-4Pin_5.0x3.2mmY1
1DOWNParts:Membrane Button SmallSW6
1GNDTestPoint:TestPoint_THTPad_D2.0mm_Drill1.0mmGND2
1GNDTestPoint:TestPoint_Pad_D1.0mmGND1
1HOMEParts:TL3315NF100Q_EWISW9
1L3TestPoint:TestPoint_Pad_D1.0mmL3
1LED_BRGKParts:LED_T36K3BGR-05D000121U1930D1
1LEFTParts:Membrane Button SmallSW7
1LXTestPoint:TestPoint_Pad_D1.0mmLX1
1LYTestPoint:TestPoint_Pad_D1.0mmLY1
1LZTestPoint:TestPoint_Pad_D1.0mmLZ1
1MINUSParts:SMT_FSU5
1MISOTestPoint:TestPoint_Pad_D1.5mmMI_1
1MOSITestPoint:TestPoint_Pad_D1.5mmMO_1
1PLUSParts:SMT_FSU6
1R3TestPoint:TestPoint_Pad_D1.0mmR3
1R33Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR4
1RESETTestPoint:TestPoint_Pad_D1.5mmR_1
1RIGHTParts:Membrane Button SmallSW8
1RXTestPoint:TestPoint_Pad_D1.0mmRX1
1RYTestPoint:TestPoint_Pad_D1.0mmRY1
1RZTestPoint:TestPoint_Pad_D1.0mmRZ1
1SCKTestPoint:TestPoint_Pad_D1.5mmS_1
1UPParts:Membrane Button SmallSW5
1USB+TestPoint:TestPoint_THTPad_D2.0mm_Drill1.0mmUSB+1
1USB-TestPoint:TestPoint_THTPad_D2.0mm_Drill1.0mmUSB-1
1VCCTestPoint:TestPoint_Pad_D1.0mmVCC1
1VCCTestPoint:TestPoint_THTPad_D2.0mm_Drill1.0mmVCC2
1WS2811Package_SO:SOP-8_3.9x4.9mm_P1.27mmU7
1XParts:Membrane Button SmallSW3
1YParts:Membrane Button SmallSW4

More from dmcke5/XWii-Controller

1
  • 2 layers116.3 × 31.2 mmGame Controller - Rear PCB, the printed circuit board in 3D

    Game Controller - Rear PCB

    dmcke5/XWii-Controller

    The Wii U gamepad layout is a fan-favourite for many gamers yet it is rarely used in the current generation of controllers.

    14 parts59CERN-OHL-S-2.0

Similar boards

  • 2 layers18 × 36 mmAddressable 7seg, the printed circuit board in 3D

    Addressable 7seg

    idlehandsdev/addr_7seg

    Addressable 7-Segment Displays

    16 parts107
  • 2 layers159.5 × 53.3 mmBClock, the printed circuit board in 3D

    BClock

    mkarliner/BelshazzarClock

    Belshazzar Night Clock

    77 parts7
  • 2 layers150 × 68 mmController, the printed circuit board in 3D

    Controller

    candykingdom/firefly2

    Small blinkenlight boards that sync up using radios

    194 parts5
  • 2 layers45.8 × 24.9 mmTape tics projectV2, the printed circuit board in 3D

    Tape tics projectV2

    carlos-paniagua/TapeTicsProject

    This repository contains the hardware and software design files for TapeTics

    17 parts2MIT
  • 2 layers69 × 61 mmBooth, the printed circuit board in 3D

    Booth

    JCohner/booth

    Using 1000 NeoPixels with FastLED library we are controlling a custom built DJ booths lighting. The NeoPixels are organzied into rectangles on a DJ of which the light difuses around the rectnagle.

    21 parts2
  • 2 layers160 × 69 mmPanelModular, the printed circuit board in 3D

    PanelModular

    TheBlueManCoding/ModularControlPanel

    Mechanics, PCB and Software for my modular control panel that is used with my cnc machine driven by LinuxCnc

    63 parts2GPL-3.0
  • 2 layers33 × 34.3 mmRotaryEncoderBreakout, the printed circuit board in 3D

    RotaryEncoderBreakout

    CarlRaymond/RotaryEncoderBreakout

    Breakout board for EC12PLRGB rotary encoder with RGB LED.

    17 parts1MIT

Questions

How big is the Game Controller - Front PCB PCB?

It measures 70 × 65 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Game Controller - Front PCB use?

54 parts, built around the ATMEGA32U4-AU and WS2811. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Game Controller - Front PCB KiCad files?

From the dmcke5/XWii-Controller repository on GitHub, at the commit this page was made from: the board is PCB's/KiCad Project Files/Front PCB/Game Controller - Front PCB.kicad_pcb and its schematic PCB's/KiCad Project Files/Front PCB/Game Controller - Front PCB.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Game Controller - Front PCB design in my own project?

Its repository publishes it under the CERN-OHL-S-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).