Skip to content

modkit to turn GameCube controller c-stick into 4 digital directional buttons

License

Notifications You must be signed in to change notification settings

rana-sylvatica/c-pad

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

c-pad

simple modkit to turn GameCube controller c-stick into 4 digital directional buttons

FsV6db5XgAEQ6om

Overview

This repository contains the following design files:

  • 3D models of the c-pad center insert and buttons, both as individual components and panelized for ordering from a 3D printing service
  • KiCad PCB design files for both the OEM/Phob1.X and Phob2.0 versions of the project
  • PCB fabrication files (Gerber, BOM, CPL) for both the OEM/Phob1.X and Phob2.0 versions of the project

(for information about the PhobGCC project [an open-source replacement motherboard for the GameCube controller], check out https://github.com/PhobGCC)

Previously, I was selling these c-pad modkits for $30 USD on my shop at: https://ko-fi.com/ranalabs/shop

However, you can make your own for a lower price than that (especially if you make for a few friends!) using the designs posted here.

Licensing

This project is licensed under CERN Open Hardware Licence Version 2 - Strongly Reciprocal

In short, this means:

  • License applies to publicly available hardware designs
  • Allows use, reproduction, modification, distribution, and sale of the design
  • License requires distribution under same terms, attribution to original designer(s)
  • Does not grant trademark rights, includes disclaimer of liability
  • License may be terminated for non-compliance

Anyone may use these design files to make their own c-pad for personal use or to sell, or modify the design however they wish. However, if a modified design is distributed (either digitally or physically beyond personal use), the modified design must be publicly posted under the same terms.

Note: if selling c-pad kits, PLEASE link to this repo (or your fork of this repo, if you modify the design) on your store page. If selling in-person, I would appreciate if it is communicated that this is an open-source project.

All these files are posted as-is. This source is distributed WITHOUT ANY EXPRESS OR IMPLIED WARRANTY, INCLUDING OF MERCHANTABILITY, SATISFACTORY QUALITY AND FITNESS FOR A PARTICULAR PURPOSE.

Compatibility

The c-pad design files here are split into two versions.

One version is compatible with T3 OEM motherboards (and T1/T2 OEM motherboards with JST c-stick cables, but NOT T1/T2 that have soldered ribbon cables [different pinout]), and PhobGCC 1.X. May also be compatible with Goomwave (untested as of yet). This version has a 4-pin cable header on the PCB.

The other version is compatible with PhobGCC 2.0 boards. This version has a 6-pin cable header on the PCB.

How it works

The c-pad PCB converts digital button presses to voltage levels that correspond to appropriate analog values using a resistor network (schematic below)

image

The raw output from the c-pad at each of the cardinals and diagonals can be visualized with the plot below

image

You may note that the upper left and lower right diagonals fall well outside the unit circle. This is not a problem, as the values are normalized by the controller to sit at the edge of the unit circle.

Components

The following components are required to make a c-pad module:

The PCB must be ordered with SMD assembly for the resistors, capacitors, switches, and (for the Phob 2.0 version) the ADC. I use JLCPCB for these boards. If any components are out of stock they must be pre-ordered through JLC and received into your inventory prior to ordering the board, otherwise the board will be shipped without that component. PCB settings: FR4 substrate, 1.6mm thickness, HASL lead free finish, SMD assembly on top side.

Resin 3D printing is the best way to manufacture the c-pad core. Black Resin from JLCPCB (not Imagine Black - this is confusing as JLC recently added a 2nd black resin option) is my favorite for this. Consumer-grade MSLA printers also do a nice job in my experience.

The c-pad buttons can be manufactured with resin printing, SLS/MJF nylon printing, or resin casting

SLS printing in white PA12 and dyeing with RIT dye is a nice way to get durable, vibrant, cheap buttons. I use https://www.jawstec.com/ for this.

If ordering cores/buttons from JLC/JawsTec (or other printing service) use the panelized versions of the files for cheaper unit price (labeled as cpad_core_x4 and cpad_button_x8 in the files). If printing the parts yourself, use the individual core/button files.

image image

FrWmiTQWwAI0IbI

How to assemble

Assembly is very simple:

  • put the buttons in the core
  • put together the PCB and core such that the alignment pegs line up and the slots in the core that mate with the GCC shell ribs are pointing "down" and "in" as seen from the perspective of someone holding the GCC (see image below).

IMG20230404185115

How to install

Installation is also simple:

  • desolder the existing c-stick cable from the GCC motherboard
  • solder in the new cable
  • solder the other end of the new cable to the c-pad PCB
  • put back in shell
  • should look like the image below

FsV6dreWIAUIO0w

Future work?

Here are some ideas for things that would be cool to see as continuations of this project:

  • A c-pad for a Hori GCC
  • A c-pad for a Switch Pro Controller
  • Additional button(s) as angle modifiers (or a PhobGCC firmware version that reuses either X/Y as a c-pad angle modifier maybe?)
  • An improved GCC d-pad using a design similar to the c-pad
  • A version of the c-pad for the GCC left analog stick (this would be pretty silly but might be good for platformers?)

About

modkit to turn GameCube controller c-stick into 4 digital directional buttons

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published