Showing preview only (374K chars total). Download the full file or copy to clipboard to get everything.
Repository: PhobGCC/PhobGCC-doc
Branch: main
Commit: defe51b8a30c
Files: 35
Total size: 358.9 KB
Directory structure:
gitextract_vvmcfvie/
├── For_Makers/
│ ├── 1.X Trigger Guards.STL
│ ├── BibbEZ/
│ │ └── BibbEZ_Guide.md
│ ├── Board_Debugging_2.0.md
│ ├── Board_Fixes.md
│ ├── Board_Level_Debugging_1.2.md
│ ├── Build_Guide_1.2.md
│ ├── Build_Guide_2.0.md
│ ├── Phob2_Elecrow_Ordering_Guide.md
│ ├── Phob2_Elecrow_Ordering_Guide_Old.md
│ ├── Phob2_JLCPCB_Ordering_Guide.md
│ ├── Phob2_Ordering_Guide.md
│ └── Phob_Ordering_Guide.md
├── For_Users/
│ ├── Extras_Guides/
│ │ ├── ESS_Adapter.md
│ │ └── Phob_Extras_Guide.md
│ ├── Phob2_Programming_Guide.md
│ ├── Phob_Buying_Guide.md
│ ├── Phob_Calibration_Guide_Latest.md
│ ├── Phob_Calibration_Guide_v0.20.md
│ ├── Phob_Calibration_Guide_v0.21.md
│ ├── Phob_Calibration_Guide_v0.22.md
│ ├── Phob_Calibration_Guide_v0.23.md
│ ├── Phob_Calibration_Guide_v0.24.md
│ ├── Phob_Calibration_Guide_v0.25.md
│ ├── Phob_Calibration_Guide_v0.26.md
│ ├── Phob_Calibration_Guide_v0.27.md
│ ├── Phob_Calibration_Guide_v0.28.md
│ ├── Phob_Calibration_Guide_v0.29.md
│ ├── Phob_Programming_Guide.md
│ └── Phobvision_Guide_Latest.md
├── General_Info/
│ ├── Hall_Effect_Sensors.md
│ ├── Notch_Remapping.md
│ ├── Signal_Linearization.md
│ └── Snapback_Filter.md
├── LEGACY.md
└── README.md
================================================
FILE CONTENTS
================================================
================================================
FILE: For_Makers/BibbEZ/BibbEZ_Guide.md
================================================
# BibbEZ installation guide
This is a guide for installing the BibbEZ shell-mount mouseclick Z bracket.

## Bracket
Download an FDM-ready 3D-printing model [here](https://www.printables.com/model/721075-bibbez-with-designed-support).
Print it with 0.2mm layers, 100% infill, and only one perimeter wall.
If you're using Cura to slice, turn on "experimental bridge settings" or it won't print properly.
## Switch
Use two-pin through-hole mouse microswitches.
You can get them [here on Aliexpress](https://www.aliexpress.us/item/3256807067621726.html).
Others may work but you need to verify that the dimensions are identical.
## Parts you'll need

1. JST-PH 2.0 through-hole perpendicular connector and pigtails with the wires cut about 0.75 inches (20mm) long
2. 28 AWG magnet wire, one 4.00 inches long (102mm) and one 4.25 inches long (108mm).
3. Printed BibbEZ bracket
4. Two-pin mouse microswitch
5. Heatshrink
## Assembly
### Strip, flux, and tin the wires.

This is fairly straightforward for the JST pigtail.
For magnet wire, you need to burn off the coating using your soldering iron.
Dip the tip of the magnet wire in flux paste, and put a large blob of solder on the tip of your iron.
Hold the cut tip of the wire where the copper is exposed in the blob of molten solder.
This will produce nasty fumes, so use proper ventilation and/or breathing protection.
### Bend the switch pins

Bend the switch pins to the side, fairly flat against the back of the switch.
Make sure you bend it in the correct direction. It should match this.
### Trim the switch pins

Use robust cutters to cut the switch pins flush with the side of the switch.
This is to help make it easier to insert the switch into the bracket.
### Solder magnet wire to switch

Solder the shorter wire to the left pin, as seen in this photo.
### Prepare BibbEZ bracket

Trim the support wall off the front of the bracket using flush cutters.

### Install switch in bracket

Gently bend the wires to face away from the switch. They ideally do not protrude past the side of the switch.
Insert the wires into the slots in the BibbEZ bracket and slide the switch in.

### Bend wires to equalize length

Bend the wires towards the side with the nub to make their ends line up.
### Insert heat shrink over wires

Put heat shrink over the wires so that you can cover up the solder joints later.
Use thin ones for each wire and one thick one over both wires together.
### Solder wires to JST pigtail

### Shrink small heatshrink tubes

### Shrink large heatshrink tube

### Install JST socket in motherboard
First, tin the secondary Z hole on the PhobGCC 2.0.5 motherboard that has a round pad.

Then heat the pad from the front of the motherboard while inserting the JST socket (installed on a pigtail) from the rear side.

Then solder the other pin and finish tinning the first pin.

### Install BibbEZ in shell
Orient the BibbEZ bracket like this:

Slide the BibbEZ onto the post between the X and Y buttons on the front shell.

The button pad will not fit as-is...

So trim it to fit over the bracket.

Remove the spring from the Z button and make sure that the little nub contacts the switch plunger.
Third party Z button caps might not work properly with BibbEZ.

================================================
FILE: For_Makers/Board_Debugging_2.0.md
================================================
# Sticks Inoperable
If both sticks are nonfunctional and stuck in one corner, check for shorts between C-stick wires.
Shorting these can prevent communication with both ADCs at the same time.
If only the C-Stick is inoperable, it's likely a bad connection without a short.
# Won't Connect to Console
Check if the PhobVision voltage is nonzero.
If it is, the Z button may be stuck closed and forcing the controller into PhobVision mode.

This work is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-sa/4.0/).
================================================
FILE: For_Makers/Board_Fixes.md
================================================
# Board Fixes
This is a document with illustrations that show you suggested fixes for some issues seen on PhobGCC Boards
Please ask in the [PhobGCC Discord Server](https://discord.gg/yrpUu7mgzm) if you have any questions.
## Full Duplex - PhobGCC v1.0/1.1
Bridge the third and fourth pins on the top left of the Teensy 3.2/Teensy 4.0 (as seen below) and flash the proper Diode_Short version of the firmware.

## L-stick Hall Sensor Joints - PhobGCC v1.X
Due to the reversed orientation of the left stickbox on PhobGCC v1.Xs, the left trigger guard applies significant pressure to the hall effect sensor joints.
This can deform the solder joints if leaded solder, which is soft, was used.
The way to do them right is to cut the pins flush and reflow them per [the build guide](/For_Makers/Build_Guide_1.2.md#bending-and-soldering-hall-sensors).
There are 3 other fixes that resolve the issue.
Temporarily - unscrew the shell screws by 3/4s of a turn.
Unscrew the following screws 3/4s of a turn so that it takes off the pressure on the hall sensor joints.

Filing - File down the trigger guard at the circled points.
Take out the two black screws holding it in place and remove the trigger guard. Proceed to file down the left trigger guard in the circled locations below to ensure that the joints are not being stressed.

3D Print - Either 3D print yourself or order the 3D printed bracket from a service such as JLC and swap it out.
[1.X Trigger Guard STL](https://drive.google.com/file/d/1QfcjQfTboTi3LeGjDCiVci9mYGINXsB6/view?usp=sharing)
## L-Stick Interference with L-slider - PhobGCC v1.X
As a result of the hall effect sensor placement, the analog stick is positioned upside down. This causes the notch in the skirt of the analog stick to not line up with the solder joint of the analog slider.
There are 3 fixes that resolve the issue.

During Assembly - Trim the pin flush with the hole and only add a little solder so that the solder wets into the hole. This should result in a flat board on top where it does not interfere with the analog stick.
After Assembly - trim the pin flush and reflow the solder so that it wets into the hole.
Cutting - Trim the skirt as the other side of the stick so that it does not interfere with the solder joint of the analog slider. You want to replicate the cut-out that is already on the other side of the analog stick.
## L-trigger JST Interference - PhobGCC v2.0.2
The placement of the L trigger holes on PhobGCC 2.0.2 is too high and interferes with the L trigger guard when installing a JST header.
There are 3 fixes that resolve the issue:
Filing - File down the trigger guard at the bottom of the left screw post so that it is flush with the hole as shown below. You only need to remove 0.25mm of material.


3D Print - Either 3D print yourself or order the 3D printed bracket from a service such as JLC and swap it out.
[2.0.2 Trigger Guard STL](https://drive.google.com/file/d/1NZwtrHezeiQHAMoeLFhVF65OYEvfT3iO/view?usp=share_link)
================================================
FILE: For_Makers/Board_Level_Debugging_1.2.md
================================================
# Board Level Debugging
This is a document with illustrations that show you what a PhobGCC 1.2 board should look like fully assembled, with annotations that will help you debug electrical issues when assembling.
You will need a multimeter that can read voltages and resistances to make the most of this guide.
# Physical Aspects to Check

* On the Z-button, be very generous with solder on the legs that are on the edge of the board. These solder joints are structural, helping keep the button from breaking off when you mash grab (or Z-jump).
* The pins behind the Teensy must be flush as possible. The closer they are to completely flat with the board, the flatter the rumble bracket fits. If they protrude, the rumble bracket will always try to pop out.
* The Hall effect sensors for the Analog stick need to have their leads trimmed fairly closely to the board, though they don't have to be completely flush. If you don't, they press into the trigger guards, the plastic parts that are screwed down over the triggers. This makes it difficult to close the controller shell.
* The Hall effect sensors on the C-stick board do not have to be trimmed particularly closely.

* The rumble bracket has a loop here that needs to be trimmed off to allow the bracket to lay flat easily.
# Resistances to Check Before Plugging In

* Check these resistances before ever plugging in the controller to ensure that there are no short-circuits.
* The 32 Ohm one will be different if you don't have an OEM rumble motor.
* 6 or 13 kOhm corresponds to the 3.3 volt power plane, which supplies all the analog sensors on the board. Depending on which polarity you measure (which side red and black multimeter leads are on), you will get these two values. If it's significantly lower than this, then there's a short that you will have to find.
* The short may be on the Hall Effect sensor pads, the trigger slider pads, or on the two lone pins at the end of the Teensy.
* \> 200 kOhm corresponds to the 5V supply for the Teensy. On my multimeter, it is much greater than this (several MOhms) in one direction and somewhere above 200 kOhms in the other. Other multimeters may measure something else; I have seen reports of around 50 kOhm, and this is not a problem. However, if it's too much below that, there might be an issue.
* If you have a short, go to the PhobGCC Discord for tech support, and explain what you found to be wrong. You will need to resolve these before it's safe to plug in the controller.
If the Teensy doesn't respond when plugged into a computer via USB, the likely culprits are either shorts between 3.3v and ground, or between 3.3v and the signal pins.
Check the Hall sensor pads, which are the most prone to shorts.
# Voltages to Check When Plugged In
If your controller is not functioning correctly, open the shell and plug it into a powered-on Gamecube, Wii, or GCC adapter (e.g. on PC with Dolphin open) to supply power, then check these voltages:
## Supply Voltages

* These are the supply voltages for the various parts on the controller.
* 4.2-4.7V is the supply for the Teensy. This may vary depending on what the controller is plugged into and what the Teensy's clock speed is set to.
* On my official Nintendo adapter with the Teensy at 600 MHz, this is 4.2V.
* On my Wii with the Teensy at 600 MHz, this is 4.7V.
* With the Teensy at 600 MHz, adding an extender cuts this by 0.3V until the point where the Teensy no longer operates.
* With the Teensy at lower frequencies, this voltage may be higher.
* 3.3V next to the Analog stick is the supply voltage for all the analog sensors. If this is too low, then you have a short somewhere or a bad component.
* 3.3V next to the C-stick should be exactly the same, but since this is connected via a cable it's important to check it.
## Output Voltages
If you have particular analog sensors (Analog stick, C-stick, or triggers) that are acting up, check the following voltages to compare:

* Put the black lead of your multimeter where Reference Ground indicates and the red lead on the indicated test points.
* All the 1V values are outputs of the Hall effect sensors.
* These should vary depending on the stick position in the axis indicated.
* With DH1H1 magnets and mid-placed DRV5053CA or DRV5053PA sensors, the values should change by around +/- 0.2V.
* With DH1H1 magnets and mid-placed DRV5053EA or DRV5053RA sensors, the values should change by around +/- 0.4V.
* If the sensors are placed lower to the board, the change should be less.
* If your values are consistently very low or very high, your magnets may be mounted 90 degrees off. They must be horizontal.
* The trigger values should be very roughly 0.25V for a fully extended trigger, and when the trigger is fully depressed they should reach 2.5V.
* If you leave the spring out, then they will start out higher.
* If you use trigger plugs, they likely won't reach 2.5V.
If something seems off, go to the PhobGCC Discord for tech support, and explain what you found to be wrong.

This work is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-sa/4.0/).
================================================
FILE: For_Makers/Build_Guide_1.2.md
================================================
# PhobGCC 1.2 Build Guide
This is an illustrated guide to making a PhobGCC 1.2, using photos taken of a PhobGCC board version 1.2.2.
If you want to see it in motion, watch the [PhobGCC 1.2 Assembly Video](https://www.youtube.com/watch?v=0QmgswFa1cA).
If you are very skilled with your hands, it is certainly possible to build a PhobGCC as your very first soldering project.
But if you are new to soldering, it's highly recommended to get a soldering practice kit to build your physical understanding of the soldering process with before you start and potentially ruin a PhobGCC board, Teensy, and GCC components.
# Tools
It's possible to work with cheap tools and supplies if you're very skilled.
But if you cheap out on solder or soldering iron "because you're just a beginner" you will be in for a lot of pain and suffering.
Come to the Discord server for advice on what to get if you're at all unsure.
## Required Tools
1. Temperature-controlled soldering iron with a moderate size chisel tip. DO NOT USE AN UNCONTROLLED TEMPERATURE IRON!
2. Flux-core solder, ideally no-clean flux (SAC305 ideally)
3. No-clean rosin flux paste (not to be confused with solder paste)
4. Tri-Wing screwdriver and small Phillips or ideally JIS driver set
5. Sharp tweezers
6. Flush cutter (the closer to flush they cut, the better)
7. Pliers
8. Solder sucker (or more sophisticated desoldering tool)
9. Vise or PCB support (the alligator clip kind is not very useful)
10. Multimeter for debugging
11. 90%+ rubbing alcohol and cotton swabs
## Suggested Tools
1. Non-magnetic tweezers, if you're not using printed magnet holders
2. Anti-static mat/grounding strap
3. Fume fan
# Parts
Some of the parts are taken from a donor Gamecube controller, while others must be sourced new. Check the [PhobGCC Ordering Guide](https://docs.google.com/presentation/d/1oINA7_uTVTVmYVD8K1pJWOuYjSPyhjqsKgl4iAZOqRE/edit?usp=sharing) for a list of what you need to purchase.
## New Parts
1. PhobGCC 1.2 board (includes C-stick board and may have two trigger paddles)
2. Teensy 4.0 without headers
3. Headers
4. 4x Hall Effect sensors
5. 4x magnets
6. Either superglue or 3D-printed magnet holders
7. Optional 4x D-pad buttons
8. Optional 4x mouse buttons for ABXY (assembly not depicted)
9. Optional 1x or 2x mouse buttons for triggers (assembly not depicted)
## Internal Parts Harvested from Donor GCC
Not counting the shell, buttons, stick caps, etc.
1. 2x Stickboxes
2. 2x Trigger potentiometers
3. Cable (or make or buy your own)
4. Rumble Motor (or use a cellphone rumble)
5. Rumble Bracket (or source your own 3D-printed one)
6. Z-button switch
7. Optional: trigger paddles with attached wires
For the desoldering process, start at slide 5 of the [PhobGCC 1.1 Build Guide](https://docs.google.com/presentation/d/1Awil69v7xDhX-VOdLnVhseILLCY89gFpTTAPPEig6E4/edit#slide=id.p) or watch [the first section of the PhobGCC 1.2 Assembly Video](https://www.youtube.com/watch?v=0QmgswFa1cA&t=0s).
# Build Process
## Magnet Mounting
If you're using superglue to mount magnets to the stickboxes, consult slide 16 of the [PhobGCC 1.1 Build Guide](https://docs.google.com/presentation/d/1Awil69v7xDhX-VOdLnVhseILLCY89gFpTTAPPEig6E4/edit#slide=id.g121d68271e5_0_0). You want to do this before the rest of the process, preferably a few hours before.
If you're using 3D-printed magnet holders, you can do this right before putting the stickboxes on the board.
First press-fit the magnet holders over the pegs on the stickboxes, add a thin coat of superglue inside the magnet holder, then press-fit the magnets themselves into the magnet holders.
Consult [this section of the PhobGCC 1.2 Assembly Video](https://www.youtube.com/watch?v=0QmgswFa1cA&t=1858s).

Make sure the magnets are oriented horizontally.
## Soldering Interlude
Many people attempting to build PhobGCCs are new or relatively novice solderers.
In this section I outline the basic processes and techniques involved in soldering in the hopes of making the process go more smoothly.
Soldering is basically applying fancy conductive hot glue to the surfaces, with some important differences.
The first difference is that the parts that are getting soldered together must be very hot in order for the solder to stick.
Additionally, the parts that are being soldered are usually damaged by too much heat, or heat applied for too long.
Finally, the oxidation on the surface of the metal must be stripped off somehow.
These must all be considered together in order to successfully solder.
### Heating
First, in order to properly heat the joint, you need to heat the joint to above the melting temperature of the solder.
This involves a few considerations.
First is the melting temperature of the solder, which you use to determine the iron temperature.
* Leaded Sn63Pb37 solder melts at 183C/361F, and is usually soldered with the iron at **315-340C/600-650F**.
* Lead-free SAC305 (Sn 96.5%, Ag 3%, Cu 0.5%) solder melts at a higher temperature of 217C/423F, and is usually soldered with the iron at **340-370C/650-700F**.
If you set the iron too cold, it takes too long to heat the joint to a sufficient temperature, and nearby parts may be overheated and damaged.
Conversely, if you set the iron too hot, the joint itself can be overheated and this can cause damage to the pads on the PCB or lift traces.
I recommend you use the lower end of the temperature scales I listed as a starting point.
The second consideration is your soldering iron and its tips.
Make sure you are using a **temperature-controlled soldering iron** that can be set to specific temperatures, not just power levels.
If it's not temperature-controlled, just don't use it.
A non-controlled iron will heat up to hotter than you want when it's not being actively used, and cool down to lower than you want when it's being used.
It's not worth the suffering involved.
You will hate the iron, hate yourself, and in all likelihood end up with nonfunctional PhobGCCs.
Do not use the following kind of soldering iron with the tiny dial on the handle.
I call these "Phob Destroyers" because they do not have actual temperature control.
They are cheap, and you get what you pay for: garbage.

Next is the tip size.
In general, you want to get the most contact between the tip and the solder joint without touching adjacent joints.
Ideally, you use a chisel tip that is exactly as wide as the pads.
Most people don't switch soldering iron tips frequently, so in this case you should select the widest tip usable for the smallest joints.
On the PhobGCC 1.2, the smallest joints are the Hall effect sensors, which have pads 0.8mm wide.
I recommend you use a **chisel tip from 0.8 to 1mm wide**, ideally.
I actually use a 1.6mm wide tip, which works better for the larger pads but is slightly more difficult to use for the Hall effect sensors.
Additionally you have to consider tip condition when heating.
When metal is left at a high temperature, the metal surface reacts with oxygen in the air to form an oxide layer that insulates the tip, preventing heat transfer, and also doesn't let solder stick to it.
It is important to **keep the tip tinned with fresh solder** or tip-tinner whenever it is not in use.
While the solder oxidizes, it is also liquid at operating temperature so any oxidation of it can be easily wiped off with a wet sponge before beginning to solder.
If the tip has oxidized significantly, you can scrub off the oxide coating using a **brass wool** sponge, followed immediately by dipping the tip in **tip tinner** or alternatively coating the tip with normal solder.
If you aren't using your iron for a while, make sure to turn it off to stop it from oxidizing.
Finally, it comes down to technique.
In order to transfer the heat as effectively as possible, **apply a lot of pressure** using the soldering iron to both parts that you want to join together.
The board is robust, so you can press down on it very hard, and press across onto pins as hard as you can without bending them, which may vary based on the pin thickness.
### Removing Oxidation from Surfaces
While oxidation quickly grows thick on very hot metal like the soldering iron tip, a thin layer exists on almost every metal.
To remove this, a material called **flux** is applied.
When flux is heated, it becomes reactive and strips the oxygen out of the metal oxides.
This lets the solder bond properly to the surface.
Most solder has a **flux-core**, where flux is actually inside the solder wire so that it is automatically applied when you melt the solder.
Do not get solder that is "solid wire".
There are various kinds of flux as well.
You should get no-clean rosin flux.
More active flux types are useful when soldering to different materials, but you don't need any more than no-clean rosin flux for the gold-plated board of the PhobGCC.
If you do use more active types of flux, then you need to clean the board off after soldering in order to prevent corrosion.
In addition to flux core, if you are having trouble, you can add additional flux, which can come as a gel, a liquid in a syringe or bottle, or in a pen.
I personally find that I have no need for these, but some find it very helpful.
To effectively use flux-core solder, you must apply solder to the joint, not to the iron.
If you apply solder to the iron, all the flux gets used up on the surface of the iron and there's no effect on the joint surfaces that you want to bond to.
Additionally, if you apply solder to the joint and not to the iron, you can be sure the joint is hot enough before the solder is applied.
Another benefit is that this lets you better control the amount of solder.
If you touch the solder onto the iron tip, you might end up with a big blob of solder on the iron tip and none on the board.
### General description of technique
First, turn on the iron and wait for it to heat up.
Then, for each joint:
1. Scrub off oxidation on soldering iron tip with brass wool.
2. Tin the tip with solder or tip tinner.
3. Clean most of the tinning off the tip with brass wool or wet sponge.
4. Strongly press the tip against both parts that are being soldered together.
5. Apply flux-core solder wire to the joint between the two parts without touching it to the soldering iron tip.
6. Wait for the solder to melt, then feed the wire in until it forms a concave cone. Do not apply too much.
7. Continue heating a second or two more to let the flux in the joint stop bubbling.
8. Remove the soldering iron and let the joint cool without blowing on it.
9. Continue with other adjacent joints.
10. When you're done soldering for now, clean the tip with brass wool or sponge.
11. Apply fresh solder or tip tinner.
### Cleaning Flux
If you leave flux behind from soldering, it can cause problems.
One thing is that the flux residue itself can be conductive, which can cause the Hall sensors to not work properly.
This is especially problematic with flux that isn't labeled as No-Clean.
Additionally, the flux residue is corrosive and can cause the components to corrode long-term.
To remedy this, use rubbing alcohol (as high concentration as you can get) with a cotton swab to clean the flux residue from the PCB when you're done soldering.
## Teensy Programming
Begin by programming the Teensy 4.0 according to [this guide](/For_Users/Phob_Programming_Guide.md).
## Teensy Soldering
See [this section of the PhobGCC 1.2 Assembly Video](https://www.youtube.com/watch?v=0QmgswFa1cA&t=822s).
Insert two 14-pin strips and one 2-pin strip of low-profile header pins into the top of the board, long ends down.
Place the already-programmed Teensy 4.0 atop the header pins, then solder the Teensy to the pins.

Next, flip the board over and either support the board by the Teensy or securely tape the Teensy to the board so that the pins stick up.

Cut the pins as flush as possible to the back of the board. If you don't cut these flush, the rumble bracket may not fit well and the shell won't close easily.

Solder the pins to the board, making sure the Teensy remains flush to the board and the vias that the pins reside in are not overfilled with solder.


## Trigger Potentiometer Soldering
See [this section of the PhobGCC 1.2 Assembly Video](https://www.youtube.com/watch?v=0QmgswFa1cA&t=1640s).
Mount the trigger potentiometers to the back of the board. Do not mount them to the same side as the Teensy.

You can tape them to the board with masking tape to keep them in place, or just rest the board on top of the potentiometers to secure then in place while you solder them.

## Z-button Switch Soldering
See [this section of the PhobGCC 1.2 Assembly Video](https://www.youtube.com/watch?v=0QmgswFa1cA&t=1781s).
Mount the Z-button switch to the top of the board, the same side as the Teensy. Do not mount it to the back of the board.

Solder it to the board, with extra solder applied to the contacts at the board edge. These are structural.

You do not need to solder the inner pads on the board edge.
## OPTIONAL D-pad Buttons
This is an optional enhancement to the D-pad that goes underneath the OEM rubber domes.
This does not enhance the feel of the buttons, but it makes them harder to press accidentally and more consistent when you do want to press them. This is not suggested for Samus mains because it makes it harder to activate the Extended Grapple.
First, observe the wings on the button pads. The wings are where the switch contacts will go.

The switches on the right and left pads must be oriented with the contacts oriented horizontally, while the switches on the top and bottom pads must be oriented with the contacts oriented vertically.
If you mix this up, the buttons will be shorting the contacts all the time.

The process of soldering goes as shown:

Top: Apply a tiny bit of solder to one wing of the contact only.
Left: Using tweezers, hold a switch in place and melt the existing solder to tack it in place. Do all the buttons to this stage, then fit-check their placement using the shell to make sure they are centered under the rubber domes..

Right: Tack the opposite corner down using solder, then remelt the first corner and then this corner to eliminate strain.
Bottom: Solder down the rest of the corners.
The buttons should now look like this:

Using a multimeter, check continuity between the exposed copper pads that stick out past the button. They should be disconnected when the switch isn't pressed, and shorted when the switch is pressed.
## Bending and Soldering Hall Sensors
See [this section of the PhobGCC 1.2 Assembly Video](https://www.youtube.com/watch?v=0QmgswFa1cA&t=2000s) although it is missing the actual soldering.
Also see [the PhobGCC Hall Effect Sensor Soldering Video](https://www.youtube.com/watch?v=js1TYhYUG0g).
The Hall effect sensors come as a small black prism with two beveled edges.

The legs of the Hall effect sensors must be bent 90 degrees so that the beveled edges face upward, with the bend as close as possible to the head of the sensor.

If the bends are located too far away from the body of the sensor, it will be difficult to get the stickbox in place.
Place the bent sensors in the board with the legs through the holes.
Make sure they are on the upper side of the board with the text; this is easy to mix up on the C-stick board.

On the motherboard, place the Hall sensors on the top and left sides where the pads are small and close together.
Do not try to spread the Hall sensor legs to fit through the wider-spaced holes on the bottom and right sides; you may break the sensor and it won't work even if you manage to not break them.

Install the stickboxes, already equipped with magnets, on the boards before soldering down the Hall sensors.


Align the height of the sensors to be roughly the level of this feature in the T3 stickbox or lower, making sure the sensors are centered and level.
You may need to bend the legs a bit.

When you are satisfied with the sensor height, solder one leg in place.
You can then use tweezers to manipulate the position while you remelt that one solder joint in order to fine-tune it.

Then, solder the remainder of the legs.

Finally, trim the legs.

On the motherboard, trim the legs *very closely* and then reflow the solder on each joint.
They should be no taller than half the height of the screw heads for the stickbox.
If you don't do this, it makes the controller harder to reassemble and may break the solder joints.
They do not need to be as flat on the C-stick.
**Note: using leaded solder on the motherboard Hall effect sensors is a common cause of long-term failure for PhobGCC 1.2s.**
Leaded solder is soft and deforms easily when pressed upon by the trigger guard.
This commonly causes a short-circuit, which does no damage but makes the analog stick hold hard left or hard right.
Using SAC305 solder, which is harder, seems to have fewer issues.
And as mentioned before, make sure that the Hall sensor solder joints are as flat to the board as you can make them, to help mitigate this issue.

## C-stick Cable Soldering
See [this section of the PhobGCC 1.2 Assembly Video](https://www.youtube.com/watch?v=0QmgswFa1cA&t=2261s).
You can either use the ribbon cable harvested from the OEM board, or you can solder in individual wires. If you use your own wires, have the insulation be about 3/4" (19mm) long.
Since I'm using the OEM cable, I prefer to put the red line on the side with the square pad on the C-stick board.

Solder the exposed ends to the pads.

Next, connect the opposite end of either the ribbon cable or the wires to the motherboard.
Make sure that both boards are facing up, and make sure they are oriented like this to ensure that the connections do not get mixed up.

Then, solder the wires to the motherboard.

## Controller Cable Soldering
See [this section of the PhobGCC 1.2 Assembly Video](https://www.youtube.com/watch?v=0QmgswFa1cA&t=2548s).
If you are using an OEM cable harvested from a first-party Gamecube controller, the black wire should be placed farthest from the center of the controller, and the blue wire closest to the center of the controller.

The pins themselves are actually basketlike sheet metal forms, so when you solder them, they take up a fairly large amount of solder.

## Trigger Paddle Soldering
If you don't harvest the trigger paddles from the OEM controller, you will need to prepare new wires for the PhobGCC's trigger paddles.
It is possible to solder mouse buttons to these trigger paddles, but that is not covered here as it involves a more invasive modification to the OEM controller hardware.
Cut and strip wires that are roughly 1 inch long (25mm), and solder them in so that the wires are on the opposite side of the PCB from the pads.
Do not have the wires exit the front side with the contacts, or they can short to the Hall effect sensor pins.

Load the trigger paddles with pads exposed into the rumble bracket (whether OEM or third-party), and mount the rumble bracket to the PCB.
Make sure the wires safely exit the slots and do not get caught or pinched under the bracket.

Tuck the trigger paddle wires into the nearby holes in the motherboard.

Then, being careful not to let them slip out, solder them to the motherboard.

## Rumble Motor Soldering
Next, mount the rumble motor back in the rumble bracket by inserting it into the rectangular box.
Make sure that the shaft is on the cable side, and the motor is rotated so that the wires are on the D-pad side, close to the edge of the box.

Apply a generous blob of solder to each of the rumble motor pads.

To solder the wires down, melt the blob of solder with your soldering iron and use tweezers to hold the wire in the pool.
Remove the hot soldering iron, and keep the wire still as the solder cools.
Clip the wires into place on the rumble bracket.

# Completion and next steps

Now that you have completed the soldering steps, follow the [Board Debugging Guide for PhobGCC 1.2](/For_Makers/Board_Level_Debugging_1.2.md) to make sure it's ready to go.
Then, reassemble it, and follow the Initial Steps in the [PhobGCC Calibration Guide](/For_Users/Phob_Calibration_Guide_Latest.md) for the version of the software you have flashed on the Teensy.
And, enjoy!

This work is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-sa/4.0/).
================================================
FILE: For_Makers/Build_Guide_2.0.md
================================================
# PhobGCC 2.0 Build Guide
This is an illustrated guide to making a PhobGCC 2.0, using photos taken of a PhobGCC board version 2.0.1.
Newer board versions may differ slightly in appearance but this guide will still be applicable.

If you want to see it in motion, watch the [PhobGCC 2.0 Assembly Video](https://www.youtube.com/watch?v=hWuvy4ZEgG0).
Unlike previous releases, PhobGCC v2.0 is much more beginner friendly and if you follow the instructions precisely it is possible to build a PhobGCC as your very first soldering project.
It is still recommended to get a soldering practice kit to build your physical understanding of the soldering process with before you start.
And make sure to follow **every single step** without fail, because there's many ways to make the controller nonfunctional.
# Tools
It's possible to work with cheap tools and supplies if you're very skilled.
But if you cheap out on solder or soldering iron "because you're just a beginner" you will be in for a lot of pain and suffering.
Come to the [PhobGCC Discord Server](https://discord.gg/yrpUu7mgzm) for advice on what to get if you're at all unsure.
## Required Tools
1. Temperature-controlled soldering iron with a moderate size chisel tip. DO NOT USE AN UNCONTROLLED TEMPERATURE IRON!
2. Flux-core solder, ideally no-clean flux (Sn63Pb37 melts at a lower temperature, SAC305 is nontoxic and flows better)
3. No-clean rosin flux paste (not to be confused with solder paste)
4. Tri-Wing screwdriver and small JIS driver set (Phillips drivers can strip screws)
5. Sharp tweezers
6. Solder sucker (or more sophisticated desoldering tool)
7. Vise or PCB support (the alligator clip kind is not very useful)
8. Multimeter for debugging
9. 90%+ rubbing alcohol and cotton swabs
## Suggested Tools
1. Anti-static mat/grounding strap
2. Fume fan
# Parts
Some of the parts are taken from a donor Gamecube controller, while others must be sourced new. Check the [PhobGCC Ordering Guide](/For_Makers/Phob2_Ordering_Guide.md) for a list of what you need to purchase.
## New Parts
1. PhobGCC v2.0.0 board (includes C-stick board)
2. 4x magnets
3. 3D-printed magnet holders and superglue
4. Optional 2x trigger paddles
5. Optional 4x D-pad buttons
6. Optional 4x mouse buttons for ABXY (assembly not depicted)
7. Optional 1x or 2x mouse buttons for triggers (assembly not depicted)
8. Wire
## Internal Parts Harvested from Donor GCC
Not counting the shell, buttons, stick caps, etc.
1. 2x Stickboxes
2. 2x Trigger potentiometers
3. Cable (or make or buy your own)
4. Rumble Motor (or use a cellphone rumble)
5. Rumble Bracket (or source your own 3D-printed one)
6. Z-button switch
7. Optional trigger paddles with attached wires
# Build Process
## GCC Part Harvesting
[Video Guide](https://www.youtube.com/watch?v=hWuvy4ZEgG0&t=17s)
Begin by taking apart the donor GCC using a Tri-Wing screwdriver.
Remove the motherboard.

You will want to remove the following parts from it:
1. Z button (or supply your own alternate as shown)
2. Trigger paddles (or use PhobGCC ones as alternates as shown)
3. Trigger potentiometers
4. Stickboxes (preferably T3)
5. Rumble bracket (or supply your own 3D-printed one)
6. GCC cable (or supply your own)
7. Rumble motor (or omit it, or use a cell rumble)
8. Stick caps

If you're not familiar with removing the stickboxes, you can stick the points of tweezers between the stickbox and the potentiometers to unclip the potentiometers.
Then, use a JIS #0 screwdriver to unscrew the screws from the bottom of the stickboxes.

# Critical Step: Magnet Mounting
[Video Guide](https://www.youtube.com/watch?v=hWuvy4ZEgG0&t=550s)
PhobGCC 2 uses sensors mounted perfectly flat on the board, which was not recommended for PhobGCC 1.
If you were to glue magnets to the peg or use centered magnet holders designed for PhobGCC 1, the signal would be much too weak and the nonlinearities would be undesirable.
Therefore, for PhobGCC 2.0 we are making 3D-printed magnet holders mandatory.
You can get an adjustable parametric OpenSCAD file in the pins of the 3d-printing channel on the discord, or you can get magnet holder STLs designed for use with JLCPCB in the PhobGCC 2 hardware releases.
When using 3D-printed magnet holders, we strongly urge you to superglue (cyanoacrylate) the holders to the stickbox pegs.
It's easiest to do this early in the process so that the superglue cures sufficiently before you need to install the stickboxes.
First, clean the grease off the stickbox pegs with isopropyl alcohol and wipe off the alcohol.
Do not allow it to evaporate on its own, or it will simply redeposit the grease back down.
Then, I prefer to scratch up the pegs using a steel pick or a razor blade.
This exposes clean, fresh plastic for gluing to.

**Do not apply superglue to the pegs!**
Press-fit the magnet holders over the pegs, making sure that the hole for the magnets is offset downward.

The ideal offset may vary with different magnets, and different magnet/offset combinations may result in slightly different stick behavior.
Coat the inside of the magnet hole, and the top of the peg, with superglue.
I prefer thin superglue.
**Be *very sparing* with superglue so you do not contaminate the stickbox!**
Make sure the magnet holders are able to rotate as you move the stick. **If they are stuck, break them loose by grabbing the magnet mount, not by forcing the stick.**

Insert magnets into the magnet wells, making sure that the magnets are all oriented horizontally.
**If the magnets are not horizontal then the stick will not function.**

If you wish, you can add extra superglue on top of the magnets to ensure they are securely held in place, though this is not absolutely necessary.
Set the stickboxes aside to cure.
## Stuck Trigger Prevention
[Video Guide](https://www.youtube.com/watch?v=hWuvy4ZEgG0&t=2349s)
This is an optional but simple and highly recommended step to improve the reliability of GCC triggers.
First, use a JIS #1 screwdriver to unscrew these four screws from the backshell of the donor GCC.
If you attempt to use a Phillips screwdriver, you are *extremely* likely to damage the screw heads by camming out.
Please use a JIS screwdriver so that any future modders working on the controller will have an easier time removing them.

Remove the plate above each trigger and the trigger components, and find this protruding corner on each side.

Using your flush cutters, remove about 1mm of height from the top of this corner.

This ensures that the tab on the trigger that moves the trigger potentiometer does not get caught on that corner.

## Soldering Interlude
Many people attempting to build PhobGCCs are new or relatively novice solderers.
In this section I outline the basic processes and techniques involved in soldering in the hopes of making the process go more smoothly.
Soldering is basically applying fancy conductive hot glue to the surfaces, with some important differences.
The first difference is that the parts that are getting soldered together must be very hot in order for the solder to stick.
Additionally, the parts that are being soldered are usually damaged by too much heat, or heat applied for too long.
Finally, the oxidation on the surface of the metal must be stripped off somehow.
These must all be considered together in order to successfully solder.
### Heating
First, in order to properly heat the joint, you need to heat the joint to above the melting temperature of the solder.
This involves a few considerations.
First is the melting temperature of the solder, which you use to determine the iron temperature.
* Leaded Sn63Pb37 solder melts at 183C/361F, and is usually soldered with the iron at **315-340C/600-650F**.
* Lead-free SAC305 (Sn 96.5%, Ag 3%, Cu 0.5%) solder melts at a higher temperature of 217C/423F, and is usually soldered with the iron at **340-370C/650-700F**.
If you set the iron too cold, it takes too long to heat the joint to a sufficient temperature, and nearby parts may be overheated and damaged.
Conversely, if you set the iron too hot, the joint itself can be overheated and this can cause damage to the pads on the PCB or lift traces.
I recommend you use the lower end of the temperature scales I listed as a starting point.
The second consideration is your soldering iron and its tips.
Make sure you are using a **temperature-controlled soldering iron** that can be set to specific temperatures, not just power levels.
If it's not temperature-controlled, just don't use it.
A non-controlled iron will heat up to hotter than you want when it's not being actively used, and cool down to lower than you want when it's being used.
It's not worth the suffering involved.
You will hate the iron, hate yourself, and in all likelihood end up with nonfunctional PhobGCCs.
Do not use the following kind of soldering iron with the tiny dial on the handle.
I call these "Phob Destroyers" because they do not have actual temperature control.
They are cheap, and you get what you pay for: garbage.

Next is the tip size.
In general, you want to get the most contact between the tip and the solder joint without touching adjacent joints.
Ideally, you use a chisel tip that is exactly as wide as the pads.
Most people don't switch soldering iron tips frequently, so in this case you should select the widest tip usable for the smallest joints.
PhobGCC 2 is much easier to solder than PhobGCC 1, so I recommend either chisel tips at least 1.6mm wide or knife tips that are significantly wider.
Additionally you have to consider tip condition when heating.
When metal is left at a high temperature, the metal surface reacts with oxygen in the air to form an oxide layer that insulates the tip, preventing heat transfer, and also doesn't let solder stick to it.
It is important to **keep the tip tinned with fresh solder** or tip-tinner whenever it is not in use.
While the solder oxidizes, it is also liquid at operating temperature so any oxidation of it can be easily wiped off with a wet sponge before beginning to solder.
If the tip has oxidized significantly, you can scrub off the oxide coating using a **brass wool** sponge, followed immediately by dipping the tip in **tip tinner** or alternatively coating the tip with normal solder.
If you aren't using your iron for a while, make sure to turn it off to stop it from oxidizing.
Finally, it comes down to technique.
In order to transfer the heat as effectively as possible, **apply a lot of pressure** using the soldering iron to both parts that you want to join together.
The board is robust, so you can press down on it very hard, and press across onto pins as hard as you can without bending them, which may vary based on the pin thickness.
### Removing Oxidation from Surfaces
While oxidation quickly grows thick on very hot metal like the soldering iron tip, a thin layer exists on almost every metal.
To remove this, a material called **flux** is applied.
When flux is heated, it becomes reactive and strips the oxygen out of the metal oxides.
This lets the solder bond properly to the surface.
Most solder has a **flux-core**, where flux is actually inside the solder wire so that it is automatically applied when you melt the solder.
Do not get solder that is "solid wire".
There are various kinds of flux as well.
You should get no-clean rosin flux.
More active flux types are useful when soldering to different materials, but you don't need any more than no-clean rosin flux for the gold-plated board of the PhobGCC.
If you do use more active types of flux, then you need to clean the board off after soldering in order to prevent corrosion.
In addition to flux core, if you are having trouble, you can add additional flux, which can come as a gel, a liquid in a syringe or bottle, or in a pen.
I personally only use added flux for tinning the ends of stranded wire.
To effectively use flux-core solder, you must apply solder to the joint, not to the iron.
If you apply solder to the iron, all the flux gets used up on the surface of the iron and there's no effect on the joint surfaces that you want to bond to.
Additionally, if you apply solder to the joint and not to the iron, you can be sure the joint is hot enough before the solder is applied.
Another benefit is that this lets you better control the amount of solder.
If you touch the solder onto the iron tip, you might end up with a big blob of solder on the iron tip and none on the board.
### General description of technique
First, turn on the iron and wait for it to heat up.
Then, for each joint:
1. Scrub off oxidation on soldering iron tip with brass wool.
2. Tin the tip with solder or tip tinner.
3. Clean most of the tinning off the tip with brass wool or wet sponge.
4. Strongly press the tip against both parts that are being soldered together.
5. Apply flux-core solder wire to the joint between the two parts without touching it to the soldering iron tip.
6. Wait for the solder to melt, then feed the wire in until it forms a concave cone. Do not apply too much.
7. Continue heating a second or two more to let the flux in the joint stop bubbling.
8. Remove the soldering iron and let the joint cool without blowing on it.
9. Continue with other adjacent joints.
10. When you're done soldering for now, clean the tip with brass wool or sponge.
11. Apply fresh solder or tip tinner.
### Cleaning Flux
If you leave flux behind from soldering, it can cause problems.
One thing is that the flux residue itself can be conductive, which can cause the Hall sensors to not work properly.
This is especially problematic with flux that isn't labeled as No-Clean.
Additionally, the flux residue is corrosive and can cause the components to corrode long-term.
To remedy this, use rubbing alcohol (as high concentration as you can get) with a cotton swab to clean the flux residue from the PCB when you're done soldering.
One thing of note is that no-clean flux is notably difficult to clean.
When activated, it turns into a gummy, sticky substance.
If you do intend to fully clean every part you make, flux that is not no-clean is actually easier to clean off of the solder joints.
Non-no-clean flux forms a much harder, brittle substance that flakes off relatively easily.
## Board Preparation
[Video Guide](https://www.youtube.com/watch?v=hWuvy4ZEgG0&t=910s)
The C-Stick daughterboard comes attached to the main PhobGCC motherboard.
You will have to remove it.
To do this, first simply snap it off at the motherboard side.
You can use your bare hands, but be careful to avoid touching the button contacts, such as for the Start button, or you may contaminate them with oil.

Then, break the two "mousebites" off of the C-Stick daughterboard using pliers.
Note that one is longer than the other; this is normal.

This should be the result.

## RP2040 Programming
Next, load firmware onto the RP2040.
You can download it [here](https://github.com/PhobGCC/PhobGCC-SW/releases).
Plug the board into a computer via the micro USB port while holding button S1 on the motherboard, then release the button.
It will appear as a USB mass storage device, which you need to open in a file browser.
Drag-and-drop the .uf2 firmware file from the software release page into that drive.
The mass storage device will disappear and you are done loading firmware on.
If you ever need to change or update the firmware, simply repeat the process.
## Z button Switch Soldering
[Video Guide](https://www.youtube.com/watch?v=hWuvy4ZEgG0&t=1203s)
The first soldering step is to solder the Z button switch on.
Make sure to put the button on the top side of the board where the silkscreen outline of the component is, not on the back.
Also make sure that the switch stands perfectly square to the board, or the board may not fit in the controller shell properly.
If you are using a Z button switch harvested from an original GCC, you can ignore the two large circular holes.

If you are using an Omron tactile Z switch as listed in the parts ordering guide, here are the slight tweaks you must make.

Firstly, trim the two leads off the top of the button.
These interfere with a rib on the front shell.

Secondly, when you solder, don't use the U-shaped solder pads at the board edge.
Instead, the structural legs go through the larger holes farther from the board edge.
Make sure to not overfill the holes for the structural legs; you want the solder to sit entirely below the surface.

This is because you will need to trim the structural legs completely flush in order to not interfere with the trigger guards.

Additionally, you need to make room for the structural legs on top by trimming the button rubber as follows:

As a note for later, it may take a little more force than you may be used to when inserting the motherboard into the front shell when you use an Omron tactile Z switch.
This is normal, and does not cause any issues.
## Trigger Potentiometer Soldering
[Video Guide](https://www.youtube.com/watch?v=hWuvy4ZEgG0&t=1306s)
Mount the trigger potentiometers to the back of the board. Do not mount them to the front side with all of the chips.

To secure them when soldering, you can tape them to the board with masking tape, or just rest the board on top of the potentiometers.
Be sure to check after soldering your first joint that the potentiometer is laying flat against the back of the board before continuing.

## C-stick Cable Soldering
[Video Guide](https://www.youtube.com/watch?v=hWuvy4ZEgG0&t=1550s)
For PhobGCC 2, the C-Stick now needs six conductors connecting it to the main motherboard.
You will have to provide your own wire for this, though there may come to be brand-new ribbon cables available that may suit the purposes.
Any such ribbon cables should be between 1 and 1.5 inches long (25 to 38mm) and must be 2 millimeter wire spacing.
We *strongly discourage* the use of ribbon cables harvested from other controllers, as poorly folding previously-used ribbon cables has been a major cause of issues with PhobGCCs in the past.
In this guide I cut and stripped six 1.5-inch (38mm) wires identical to those used in the trigger paddles, and applied flux to the ends.
Then, I used the same technique as in the Trigger Paddle Soldering section to install them in the back side of the C-Stick daughterboard.
Note that this is the side with silkscreen around the through-holes.

For these especially, if you are using individual wires I strongly recommend that you make their lengths as consistent as possible, and solder them such that the insulation ends at the same distance from the C-stick daughterboard.

The uniform length helps when you are inserting the wires into the motherboard.
Support the motherboard above the C-Stick daughterboard with the daughterboard oriented like this.
If you flip it around, the C-stick will not function at all.

Insert all of the C-Stick wires into the motherboard.
Make sure that all of the wires are straight and none of them are crossed, or the C-Stick will not function.

Then solder the wires.

## Trigger Paddle Soldering
[Video Guide](https://www.youtube.com/watch?v=hWuvy4ZEgG0&t=1899s)
If you are using OEM trigger paddles, you may skip this step.
If you are using PhobGCC trigger paddles instead of OEM, you will need to solder wires to them yourself.
Cut four pieces of wire to about 1.5 inches (38mm) long and strip the insulation off the ends.
Apply flux to the ends of the wires, making sure not to cause them to fray if using stranded wire.
Hold the trigger paddles in a vise and apply solder to fill the through-hole pads with solder.

Then, heat the front side of each through-hole with your soldering iron to melt it, and insert the fluxed end of the wire from the back side of the hole where the silkscreen markings are.

## Stickbox Installation
[Video Guide](https://www.youtube.com/watch?v=hWuvy4ZEgG0&t=2078s)
Install the stickboxes on the motherboard and the C-Stick.

You must have the magnets mounted above the 3-legged SMD Hall-Effect sensors.
Note that on PhobGCC 1.2.3 and prior, the stickbox on the motherboard was 180 degrees off of normal, but on PhobGCC 2 the magnets must be on the bottom and right.
## Trigger Paddle Soldering
[Video Guide](https://www.youtube.com/watch?v=hWuvy4ZEgG0&t=2199s)
Insert the trigger paddles into the rumble bracket (whether OEM or third-party), ensuring that the contacts on the trigger paddle are visible.
Route the wires out the slots on the back of the rumble bracket.
Then mount the rumble bracket to the motherboard.
Here I have put the rumble motor in the rumble bracket but that can be left until later.
I like to hold the rumble bracket in place with a clothespin.
Tuck the wires from the trigger paddles into their respective holes on the motherboard.
For R, make sure not to mix up the holes with the extra holes for mouseswitch Z, which are nearby.

Then solder the wires in place.

## Controller Cable Soldering
[Video Guide](https://www.youtube.com/watch?v=hWuvy4ZEgG0&t=3355s)
Next, install the controller cable into the motherboard.
The cable must go in the back of the motherboard.
If you are using an OEM cable harvested from a first-party Gamecube controller, the black wire should be placed farthest from the center of the controller, and the blue wire closest to the center of the controller.

Secure the wire in place, then solder the pins to the pads on the top of the motherboard.

## OPTIONAL PhobVision installation and soldering
PhobVision is a new feature exclusive to PhobGCC 2 where the controller can output composite video to a CRT and provide an actual user interface for the user to calibrate and configure the controller without having to blindly input memorized button combinations.
[Here is a video demonstrating its basic functionality](https://youtu.be/8OOGupE3-ic).
If you choose to install it, here's my suggested method.
It's rather irritating to pack this in with an OEM rumble motor, so you may want to do it with no rumble installed or with a cell rumble motor.
Nonetheless, this guide shows you how to do it so that it fits around the OEM rumble.
[Video Guide for backshell drilling](https://www.youtube.com/watch?v=hWuvy4ZEgG0&t=2498s)
Begin by taking the backshell and marking a point 0.5 inches or 13 mm down directly below the edge, aligned with the center of this tab.

Using a *split-point drill bit* to help prevent the bit from wandering around, drill a 7mm diameter hole in the back of the controller.
You may also use a 9/32" bit or a Letter J drill bit.

Note that on this particular shell, the bit wandered slightly towards the centerline of the controller, which is fine.
If the bit wanders towards the side of the controller, you may need to carve out the area marked in red to provide clearance for the TRRS jack's flange.
In this case, the hole instead intersects a rib that only exists on T3 shells that you should remove in the vicinity of the hole.

Simply cut the rib off with flush cutters.

[Video Guide for jack, connector, and wire prep](https://www.youtube.com/watch?v=hWuvy4ZEgG0&t=2570s)
Next up we must prepare the 3.5mm TRRS jack for installation.

To get the jack to fit with an OEM rumble motor, use pliers to bend the tabs on the end sideways.
Note which tabs are used for what.

Apply flux to the two bent silver tabs and tin them generously with solder.

Cut a two-pin JST-PH pigtail's wires to 3 inches long (75mm), strip the ends, and apply flux.
Shorter wires give less slack when maneuvering, and longer wires are hard to fit, so be fairly precise with the length here.
Then solder them to the two tinned tabs.
Make sure that the black wire goes to the middle tab, and the red wire goes to the other silver tab.

Make sure the wires are soldered to the back side of the tabs so that they do not stick out past the end.

Generously apply hot glue between the wires and the barrel of the TRRS jack in order to provide strain relief.
Again, do not let it protrude much past the end of the jack.

Next, cut 1.5" (38mm) long wires, strip both ends, and apply flux.
Shorter wires might not reach, and longer can interfere with closing the controller, so be precise with the length here.
Take the JST-PH receptacle and install it on the pigtail for support, then tin the protruding leads and solder them to the 1.25" wires.
You must leave the connector in the receptacle while soldering, or else the pins will lose alignment as the plastic around them softens.
Make sure to match red with red and black with black; I used the scrap ends of the pigtail wires for this so the colors match nicely.

[Video Guide for wiring to motherboard](https://www.youtube.com/watch?v=hWuvy4ZEgG0&t=3040s)
Insert the receptacle's wires into the back of the motherboard at the J2 through-hole pads, and solder them on the front of the motherboard.

[Video Guide for soldering rumble motor](https://www.youtube.com/watch?v=hWuvy4ZEgG0&t=3007s)
At this point, if you are installing rumble, mount the rumble motor in the rumble bracket by inserting it into the rectangular box.
Make sure that the shaft is on the cable side, and the motor is rotated so that the wires are on the D-pad side, close to the edge of the box.
First, tin the rumble pads with a puddle of solder, then melt the puddle with your iron and use tweezers to hold the wire in the molten pool of solder.
Remove the iron, and keep the wire still as the solder cools.
Tuck the rumble wires in the clip on the rumble bracket.
Then hot glue the PhobVision JST receptacle to the rumble bracket like depicted, ensuring that the opening is not blocked by the glue.

[Video Guide for installing jack in backshell](https://www.youtube.com/watch?v=hWuvy4ZEgG0&t=3315s)
Next, install the TRRS jack in the backshell and install the nut on the outside using pliers.
I recommend you orient the jack so that the wires initially go towards the center of the controller, then loop around towards the triggers.


## Rumble Motor Soldering
[Video Guide](https://www.youtube.com/watch?v=hWuvy4ZEgG0&t=3007s)
If you haven't installed PhobVision, mount the rumble motor in the rumble bracket by inserting it into the rectangular box.
Make sure that the shaft is on the cable side, and the motor is rotated so that the wires are on the D-pad side, close to the edge of the box.
# Completion and next steps
Now your PhobGCC should be complete!


Reassemble your controller, and follow the Initial Setup procedure in the [PhobGCC Calibration Guide](/For_Users/Phob_Calibration_Guide_Latest.md) for the version of the software you have flashed on the RP2040.
And, enjoy!

This work is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-sa/4.0/).
================================================
FILE: For_Makers/Phob2_Elecrow_Ordering_Guide.md
================================================
# PhobGCC Version 2.0.5 Elecrow Ordering Guide
This is an illustrated guide to ordering PhobGCC PCBs via the Elecrow Board House. Elecrow's boards are significantly higher quality, have less manufacturing issues, and are tested before arrival, so you won't receive non-functional boards. As such, they are the recommended option when it comes to ordering PhobGCC boards.
# Elecrow Ordering Process Overview
1. Download the files
2. Fill out all information on the [PCB assembly ordering page](https://www.elecrow.com/pcb-assembly.html)
3. Wait for an email to say the quote is ready
4. Go to your [service orders page](https://www.elecrow.com/porder/pcba/orders)
5. Checkout
## Purchasing the PhobGCC v2.0.5 board from Elecrow
Download the files available in the [PhobGCCv2-HW Github](https://github.com/PhobGCC/PhobGCCv2-HW/releases/tag/v2.0.5) in the releases section as shown below:

Once you've extracted the files from the .zip, you should have three files. The Phob2 gerbers, the Elecrow BOM, and the Elecrow INFO zip.
Head over to the [PCB assembly ordering page](https://www.elecrow.com/pcb-assembly.html) and fill it out as follows:
**NOTE: Set your PCBA quantity, country, and preferred shipping option**

Once your settings match the image above, you then upload the BOM spreadsheet where it asks, followed by uploading the INFO zip where it asks you to "Upload Other Files".
Scrolling further down you upload the gerbers.
Once that's set, you configure the PCB settings as follows:
**NOTE: Your PCB quantity must match your PCBA quantity, otherwise you may end up with blank boards. You must also select immersion gold coating (ENIG)**

Once its all filled out, double check your settings are set properly and then click "Get a quotation"
When the quote is ready, you'll receive an email. Head over to your [service orders page](https://www.elecrow.com/porder/pcba/orders) and click on checkout:

And the boards will arrive in 3-4 weeks.
================================================
FILE: For_Makers/Phob2_Elecrow_Ordering_Guide_Old.md
================================================
# PhobGCC Version 2.0.5 Elecrow Ordering Guide
This is an illustrated guide to ordering PhobGCC PCBs via the Elecrow Board House. Elecrow's boards are significantly higher quality, have less manufacturing issues, and are tested before arrival, so you won't receive non-functional boards. As such, they are the recommended option when it comes to ordering PhobGCC boards.
# Elecrow Ordering Process Overview
1. Download the files.
2. Edit the specification spreadsheet to list your quantity, board color, and text color.
3. Email files to Elecrow PCB Assembly service.
4. Upon quote arrival, you pay for your boards and reply with the order number.
5. Once the boards are assembled, you will receive photos for inspection. Reply that they're fine and they will ship.
## Purchasing the PhobGCC v2.0.5 board from Elecrow
Download the files available in the [PhobGCCv2-HW Github](https://github.com/PhobGCC/PhobGCCv2-HW/releases/tag/v2.0.5) in the releases section as shown below:

Once you've extracted the files from the .zip, you should have two files. The Phob2_Gerbers .zip and the Elecrow Info Excel spreadsheet. Open up the spreadsheet and you should see in the PCB Specification sheet as follows:

Here is where you'll want to set your board quantity, PCB color, and text color. You can see the exact settings availability on [Elecrow's website](https://www.elecrow.com/pcb-manufacturing.html), but for a short hand you can set board quantities to be 5, 10, 15, 20, 25, 30, 40, 50, 75, and 100. For PCB Color, you can choose between Green, Red, Yellow, Blue, White, Black, Purple, or Matte Black. If, and only if, you order White or Yellow PCBs, you need to change the text color from white to black. Once you have your specifications set, save the file, close it, and re-open it to ensure it saved properly.
You can then draft an email to the Elecrow PCB Assembly Service requesting a quote on how much it would cost to manufacture your boards. You can use the template as follows:
```
Hello!
I was told to contact you about your PCB Manufacturing and Assembly services. I am inquiring about a quotation of how much it would cost to produce the following project. Attached are all files as requested by your website.
Testing Plan: Plug Micro-USB into computer and it should be recognized as a mass storage device (such as USB Drive).
Note: Please ensure the proper polarity of the Diodes (D1, D2, D5) and the Polarized Capacitor (C1). I have labeled in red the correct polarity for the diodes and the ground side for the capacitor in the parts mapping tab.
Shipping Method: DHL
Shipping Address:
[INSERT YOUR ADDRESS HERE]
-Thank you for your time
--[INSERT YOUR NAME HERE]
```
Attach the Gerbers .zip and the spreadsheet to the email. Title it "PCB Assembly Quotation" and then email it to service@elecrow.com
In 24-48 hours, they will reply with an excel spreadsheet containing the results of your quote. On the Total Page at the bottom will be the final cost. If this cost is acceptable to you, you then proceed to the [Elecrow website for PCB assembly](https://www.elecrow.com/pcb-assembly.html). On here, set the name of the person who emailed you your final cost as the Project Manager name and set the "Qty" as the final cost rounded up to dollar. You can See examples below:


You can then click "Add To Cart", and proceed to checkout. Once you have checked out, you need to make a note of the order #. This will appear on screen immediately, but if you forget, you can check your email for a receipt from Elecrow. You then need to reply to the quotation email with the order number. You can use the template below:
```
Hello,
I have placed the order, my order number is ######.
-Thank you for your time
--[INSERT YOUR NAME]
```
And you are done! In 3-4 weeks you will receive an email with photos of the finished boards. You can view them to see if everything came out cleanly, then reply saying that they are fine and to ship out your order. In 24-48 hours, you will receive another email containing shipping information, including tracking.
================================================
FILE: For_Makers/Phob2_JLCPCB_Ordering_Guide.md
================================================
# PhobGCC Version 2.0.5 JLCPCB Ordering Guide
This is an illustrated guide to ordering PhobGCC PCBs via the JLCPCB Board House.
# JLC Ordering Process Overview
This is very important, or else you will get nonfunctional boards.
1. Preorder the SMD components that are in limited supply, as listed below.
* These are not stocked by JLC but they are stocked by distributors; JLC will order them and keep them in your name until you order boards that need them.
2. **Once ALL OF THE PARTS come in, only then order boards with assembly.**
* You may need to wait a week or more.
* Do not order boards before you receive notification that ALL of your parts are available.
* If you order boards before parts are available, then they will be assembled without the parts and they will not function.
3. Wait for your boards to come in.
## Pre-ordering SMD components
Since the 2.0.5 board is fully integrated, all of the non-GCC components are soldered onto the board at the board house. Some of these may be out of stock, and as such need to be pre-ordered before you place a board order. Pre-ordered components take on average 2 weeks to arrive at the JLCPCB warehouse after you pay for them. If a component takes longer, you can contact JLCPCB support for a more accurate timeframe of arrival.
The following parts usually have low stock and pre-ordering them is advised:
**NOTE: These part quantities are for a single 2.0.5 board. You need to multiply them by the number of boards you plan to order.**
**NOTE 2: You can only order PCBs in quantities of 5, 10, 15, 20, 25, 30, 50, or more. Do not order SMD components for amounts other than these or you will either have unused extra parts or unpopulated PCBs later.**
* [1x RP2040](https://jlcpcb.com/partdetail/RaspberryPi-RP2040/C2040)
* [1x NOR Flash Chip](https://jlcpcb.com/partdetail/WinbondElec-W25Q128JVSIQ/C97521)
* [4x DRV5055 SMD Hall Sensor](https://jlcpcb.com/partdetail/TexasInstruments-DRV5055A3QDBZR/C266128)
* [2x MCP3202 ADC](https://jlcpcb.com/partdetail/MicrochipTech-MCP3202_CISN/C56997)
* [1x Crystal Oscillator](https://jlcpcb.com/partdetail/390662-TAXM12M4RKDCDT2T/C403945) Note: you need 1 more per order you plan to place regardless of how many boards are in the order..
Once you've clicked on each link and added the quantities you need into your cart, click the cart icon in the top right, go to the "Parts Manager Tab", to the "Order Parts" subtab, to the "Cart" subtab as follows:

This is where you double-check the part quantities you've selected and make sure that they're all checked, even if in stock.
Once you checkout, JLC will attempt to purchase those parts for you at the quoted price.
If they end up costing more, they'll email you about supplementing the cost, and if they end up costing less, you will be refunded the difference.
You can check the status of part orders in the "Parts Order History" subtab.
Some of the parts may be in stock and be available immediately.
You must wait until **ALL PARTS** are available before proceeding.
This may take one or two weeks.
## Purchasing the PhobGCC v2.0.5 board from JLCPCB
**NOTE: Once your pre-ordered SMD Components have come in (report as "Complete" in the parts order history), you may proceed to ordering boards. If they are not in, the parts will not be present on your board**
Download the files available in the [PhobGCCv2-HW Github](https://github.com/PhobGCC/PhobGCCv2-HW/releases/tag/v2.0.5) in the releases section as shown below:

Make sure to redownload the latest even if you already downloaded it in the past, as occasionally we make changes to the components to account for stock shortages.
Once you've extracted the files from the .zip, you should have three files. The Phob2_Gerbers .zip, the Phob2_Bom.csv, and the Phob2_Pos.csv. Click "Order Now" on JLCPCB, make sure you are set to "Standard PCB/PCBA" tab, click "Add Gerber File", and upload the Phob2_Gerbers.zip. Once the files are uploaded, you should see the board process and then load in as shown below:

Once you've checked that the size is set to 90.26x125.5mm, you can progress with configuring it.
The recommended settings are the defaults, setting your board quantity, setting "Different Design" to 2, and setting the Surface Finish to ENIG, as seen below:
**NOTE: ONLY ORDER THE BOARD QUANTITY YOU HAVE PARTS FOR!**

Scroll down to PCB Assembly and toggle it on the right.
Select Standard PCBA Type (Not available for large orders or colors), the top side, and confirm parts placement as seen below.
**NOTE: For large orders such as more than 50 boards or different colors, Standard Assembly is required. This attaches removable rails to the PCB at a significant extra cost.**
**NOTE2: If arranging group buys or purchasing in large quantities, we strongly suggest using Standard PCBA so DOA boards are less likely.**

Click "Confirm" and then upload the Phob2_Bom.csv to the left and and the Phob2_Pos.csv to the right.
Set the usage description to Research/Education/DIY -> DIY HS Code and click "Next".
The text at the top of the next screen should look like the following with all 25 confirmed.
If they are not confirmed, and are not one of the five above in the pre-ordering section, stop ordering and ask in the [PhobGCC Discord](https://discord.gg/yrpUu7mgzm).

After clicking "Next", you'll be presented with a view of the parts on the board.
If this screen is corrupted, that's okay.
The files are known good and this is just the website bugging out.
You want to make sure there are no red boxes anywhere as those indicate missing components.
You can then click "Save To Cart" and pay for your boards.
================================================
FILE: For_Makers/Phob2_Ordering_Guide.md
================================================
# PhobGCC Version 2.0.5 Ordering Guide
This is an illustrated guide to acquiring all the parts you need to assemble a PhobGCC v2.0.5.
# Required Parts
The following parts are unique to the PhobGCC and must be acquired per this guide, with no non-identical substitutions.
* 1x PhobGCC v2.0.5 Board
* 4x Magnets
* 4x Underslung Magnet Mounts
* 6x Wires
* Optional: 4x D-pad Buttons
* Optional: 1-6x Mouse Buttons for ABXYLR
* Optional for [PhobVision](https://youtu.be/8OOGupE3-ic):
* Panel-mount 3.5mm TRRS Jack
* JST-PH 2.0 2-pin male connector & female pigtail
* TRRS to RCA video adapter cable (doesn't go in the controller but required for use)
The following parts are standard to a GCC and can be acquired via a number of different ways, some of which will be outlined here.
* 2x T3 Stickboxes
* 2x Trigger Potentiometers
* 2x Trigger Paddles
* 1x Cable with a GCC Plug
* 1x Rumble Bracket
* 1x Z-button Switch
* Optional: 1x Rumble Motor
There are two main ways to acquire a PhobGCC v2.0.5 Board.
The first way is if you intend to only build a single controller, you can contact a local modder in your region using [this map](https://www.nojonsmods.com/moddermap) to see if they have spare for sale.
Alternatively, you can also check [Etsy](https://www.etsy.com/) or [eBay](https://www.ebay.com/) as some often appear for sale.
If you cannot find a single board for sale or you intend to build more than one PhobGCC, you can order the boards directly from a board house.
These instructions will be for [JLCPCB](https://jlcpcb.com/) and [Elecrow](https://www.elecrow.com/).
## Parts You Don't Need
Don't acquire these, because they're not necessary or won't work with PhobGCC 2.0.5 at all:
* Snapback capacitors, snapback modules: snapback is corrected in software.
* Heartbeat modules or equivalent shunt resistors: we have no stick potentiometers so these are unnecessary.
* Teensy or Raspberry Pi Pico: the PhobGCC 2 has no need of any external microcontroller board.
* OEM C-Stick ribbon cables from a GCC: PhobGCC 2 needs 6 connections to the C-Stick daughterboard, and reusing the OEM cable has been a source of reliability issues.
* Hall Sensors: these are built into the PhobGCC board.
* Hall Effect Stickboxes: the PhobGCC uses magnets that you attach to a standard Gamecube controller stickbox.
## Purchasing the PhobGCC v2.0.5 board
If you have a GCC modder in your area, consider buying a board from them.
Otherwise, you can purchase premade boards directly from [Elecrow](https://www.elecrow.com/phobgcc-v2-gamecube-controller-motherboard.html), which stocks 4 common colors at very reasonable prices.
If you plan on ordering around 50 boards or more, or if you want more unusual colors, you should submit a traditional PCB order by following the [Elecrow Ordering Guide](/For_Makers/Phob2_Elecrow_Ordering_Guide.md).
Warning to US residents: ordering from Chinese board houses at this point is likely to result in heavy tariffs.
## Optional: Purchasing LR Trigger Paddles
If you don't or can't use OEM GCC Trigger paddles, you can order trigger paddles separately.
First, you can download the files available in the [PhobGCCv2-HW Github](https://github.com/PhobGCC/PhobGCCv2-HW/releases/tag/v2.0.5) in the releases section as shown below:

Click "Order Now" on JLCPCB, make sure you are set to "Standard PCB/PCBA" tab, click "Add Gerber File", and upload the Trigger_Paddle_Gerbers.zip. Once the files are uploaded, you should see the board process and then load in as shown below:

Once you've checked that the size is set to 9.7x41.72mm, you can progress with configuring it.
The recommended settings are the defaults, setting your board quantity, setting "Different Design" to 2, and setting the Surface Finish to ENIG, as seen below:
**NOTE: IF YOU ORDER MORE THAN 30, THE OPTION FOR DEBURRING/EDGE-ROUNDING APPEARS. IT'S RECOMMENDED TO ENABLE IT!**
**NOTE2: SINCE THESE BOARDS ARE SO SMALL, THE QUANTITY DOESN'T CHANGE THE PRICE. WE SUGGEST ORDERING PLENTY SINCE ITS CHEAP. THE DIFFERENCE BETWEEN 20 AND 200 IS $18.**

You can then click "Save To Cart" and pay for your boards.
# Optional: Purchasing DH1H1 Magnet Mounts
If you can't source magnet mounts locally or via [Etsy](https://www.etsy.com/), you can order them from JLCPCB.
**DO NOT USE THESE WITH MAGNETS OTHER THAN DH1H1.**
First, you can download the files available in the [PhobGCCv2-HW Github](https://github.com/PhobGCC/PhobGCCv2-HW/releases/tag/v2.0.5) in the releases section as shown below:

Click "Order Now" on JLCPCB, make sure you are set to "3D Printing" tab, click "Add 3D Files", and upload the DH1H1_Magnet_Holder_JLCPCB.STL. Once the file is uploaded, you should see it render as shown below:

The recommended settings are SLS Nylon. You then set the product description to Other -> Fastener as shown below
**NOTE: QUANTITY 1 GETS YOU 10 MOUNTS, WHICH IS ENOUGH FOR 2.5 PHOBS. 2 GETS YOU 20 MOUNTS FOR 5 PHOBS. MAKE SURE YOU ORDER ENOUGH!**

You can then click "Save To Cart" and pay for your mounts.
**NOTE: If you get asked about wall thickness, click "Yes" and confirm. It's okay**
# Purchasing Other PhobGCC Parts
The remaining parts can be purchased from distributors as listed below.
* Magnets: choose one type and stick with it.
* [DH1H1 Magnets](https://www.kjmagnetics.com/proddetail.asp?prod=DH1H1)
* [DH1H1-like option](https://totalelement.com/products/1-10-x-1-10-inch-neodymium-rare-earth-cylinder-rod-magnets-n52-300-pack?variant=47251320668338)
* [D12 Magnets](https://www.kjmagnetics.com/proddetail.asp?prod=d12-n52)
* [N30H Magnets](https://www.digikey.com/short/br3n8hz3)
* [Canadian DH1H1-like option](https://www.indigoinstruments.com/magnets/rare_earth/discs/small-neodymium-cylinder-magnet-2.5x2.5mm.html)
* [EU N30h-like option](https://www.supermagnete.de/eng/disc-magnets-neodymium?length-or-diameter=2.00,3.00&height=2.00,3.00)
* [Australian DH1H1-like option](https://magnet.com.au/products/neodymium-cylinder-magnet-2-5mm-x-2-5mm-n50?variant=37006192804005)
* Magnet Mounts:
* **NOTE: PhobGCC v1.X MAGNET MOUNTS WILL BE VERY BAD, AND MAY NOT WORK AT ALL. MAKE SURE TO GET THE UNDERSLUNG MAGNET MOUNTS!**
* Download [This](https://drive.google.com/file/d/10-lseJ4UK1-HkkXc6rjSJtsYRW7ihsXD/view?usp=share_link) OpenScad file. It is by default set up for DH1H1 Magnets, so you can edit it for whatever magnet you use, adjust it for your printer, and then generate the STL using [OpenScad](https://openscad.org/). Once you have the STL, you can print it using your own machine or check out local makerspaces, libraries, and print shops.
* If you use magnets other than DH1H1, you will need to adjust the magnet offset to get the optimum signal strength using PhobVision to check. Speak with the devs on Discord to find out more.
* Wire for C-Stick (choose one):
* 26-gauge stranded wire such as [this from McMaster](https://mcmaster.com/8054T11).
* 6-pin Ribbon Cable from [Kadano](https://kadano.biz/phobgcc-2-0-c-stick-ribbon-cables-6pin/) (EU)
* 6-pin Ribbon Cable from [Tbox](https://www.etsy.com/listing/1479077608/phob-202-6-pin-c-stick-ribbon-cables) (NA)
* Optional Mouse Buttons for ABXYLR: you can use mouse buttons for any number from 0 to 6 of the buttons. Generally the high actuation force buttons are preferred.
* [Low Actuation Force Buttons](https://www.digikey.com/short/nfphr274)
* [High Actuation Force Buttons](https://www.digikey.com/short/f7mctdjm)
* [Teflon Tape For Support](https://www.mcmaster.com/76475A51/) This is necessary for mouseclick face buttons, but there are alternatives.
* Optional Discrete Buttons for D-Pad:
* [Tactile SMD Buttons](https://www.digikey.com/short/7pw830cj)
* [~~SMD Buttons~~](https://www.digikey.com/short/v93wrw12)
* Optional for [PhobVision](https://youtu.be/8OOGupE3-ic): you need all of these if you choose to install PhobVision.
* [TRRS Jack](https://www.digikey.com/en/products/detail/cui-devices/SJ5-43502PM/1956558)
* [JST-PH 2.0 2-Pin Connector and Pigtail](https://www.amazon.com/dp/B01DUC1O68) or similar: size is critical; don't use a double pigtail.
* [TRRS to RCA Video Cable](https://www.amazon.com/dp/B08V1SV8BL) or similar: **MUST BE TRRS = Audio Left, Video, Ground, Audio Right**
# Purchasing Other GCC Parts
The GCC-specific Parts have a few different methods of acquisition
* Stickboxes
* T3 GCCs as per [this guide](https://gccontrollerlibrary.com/guides/gamecube-controller-stamps-guide/)
* Official Wii Classic and Wii Classic Pro Controllers
* Sold Loose on [Etsy](https://www.etsy.com/)
* Trigger Potentiometers
* Any GCC
* Official Wii Classic Controllers (No Handles)
* [Kadano's Etsy Store](https://www.etsy.com/listing/1361667533/new-gamecube-controller-potentiometers)
* Cable with a GCC Plug
* Any GCC
* Alibaba Cables
* [Liquid Cable](https://firescc.com/diy-custom-cables)
* Rumble Bracket
* Any GCC
* [Wumble](https://github.com/wavtype/wumble)
* [FIRESCC](https://firescc.com/mod-guides#/rumble-bracket)
* [Ube-S-Phob](https://github.com/Flocloud9/Ube-s-Phob-Bracket)
* Z-button Switch
* Stock - Any GCC
* Tactile - Official Wii Classic Controllers (No Handles)
* Heavy Tactile - [BattleBeaverCustoms](https://battlebeavercustoms.com/products/replacement-gamecube-tactile-z-switch)
* Tactile - [FIRESCC](https://www.etsy.com/listing/753452766/fires-performance-mod-kit-for-the?)
* Tactile - [Digikey](https://www.digikey.com/short/hp5vvv7w) **NOTE: NEEDS SOME MODIFICATION OF CONTROLLER BUTTON RUBBER**
* Mouseclick - [BibbEZ](/For_Makers/BibbEZ/BibbEZ_Guide.md)
* Optional Rumble Motor
* Any GCC
* [Cellphone Rumble](https://www.amazon.com/10-Pieces-Vibration-Motor-Vibrating/dp/B00N9J3BTG)
# Assembly
Once you have all the parts you need, follow the [build guide](/For_Makers/Build_Guide_2.0.md) to assemble your PhobGCC.
================================================
FILE: For_Makers/Phob_Ordering_Guide.md
================================================
# PhobGCC Version 1.2.3 Ordering Guide
This is an illustrated guide to acquiring all the parts you need to assemble a PhobGCC.
***Teensy 4.0s are extremely hard to find and/or scalped to expensive prices so we highly suggest that you not order PhobGCC 1.2 boards if you don't have Teensy 4.0 boards already.***
We expect to have PhobGCC board version 2 out by the end of 2022, which will have better parts availability and greatly simplified assembly.
# Required Parts
The following parts are unique to the PhobGCC and must be acquired per this guide, with no non-identical substitutions.
* 1 PhobGCC v1.2.3 Board
* 1 Teensy 4.0
* 4 Hall Effect Sensors
* 30 Low Profile Header Pins
* 4 Magnets
* High Viscosity Glue
* Optional: 4x D-pad Buttons
* Optional: 6x Mouse Buttons for ABXYLR
The following parts are standard to a GCC and can be acquired via a number of different ways, some of which will be outlined here.
* 2 Stickboxes
* 2 Trigger Potentiometers
* 1 Cable with a GCC Plug
* Rumble Bracket
* Z-button Switch
* Optional: Rumble Motor
# Purchasing the PhobGCC Board
There are two main ways to acquire a PhobGCC Board. The first way is if you intend to only build a single controller, you can contact a local modder in your region using [this map](https://www.nojonsmods.com/moddermap) to see if they have spare for sale. Alternatively, you can also check [Etsy](https://www.etsy.com/) or [eBay](https://www.ebay.com/) as some often appear for sale. If you cannot find a single board for sale or you intend to build more than one PhobGCC, you can order the boards directly from a board house. The one outlined here will be for [JLCPCB](https://jlcpcb.com/).
First, you can download the files available in the [PhobGCC-HW Github](https://github.com/PhobGCC/PhobGCC-HW/releases) in the releases section as shown below:

Once you've extracted the files from the .zip, you should have three files. The Gerbers .zip, the bom.csv, and the top-pos.csv. Click "Order Now" on JLCPCB, click "Add Gerber File", and upload the Gerbers.zip. Once the files are uploaded, you should see the board load in as shown below:

Once you've checked that the size is set to 91.41x147.63mm, you can progress with configuring it.
The recommended settings are the defaults, plus setting your board quantity, setting "Different Design" to 4, and setting the Surface Finish to ENIG, as seen below:

Scroll down to PCB Assembly and toggle it on the right.
Select the top side and Economic PCBA Type (Not available for large orders or colors) as seen below.
If you choose to use Standard PCBA, JLC will have to add rails to the board, increasing the price significantly.
**NOTE: For large orders more than 50 boards or different colors, Standard Assembly is required. This attaches removable rails to the PCB at a significant extra cost.**

Click "Confirm" and then upload the bom.csv to the left and and the top-pos.csv to the right.
Set the usage description to Research -> DIY and click "Next".
The next screen should look like the following below with all 10 confirmed.
If they are not confirmed, stop ordering and ask in the [PhobGCC Discord](https://discord.gg/yrpUu7mgzm).

After clicking "Next", you'll be presented with a view of the parts on the board.
If this screen is corrupted, that's okay.
The files are known good and this is just the website bugging out.
You want to make sure there are no red boxes anywhere as those indicate missing components.
You can then click "Save To Cart" and pay for your boards.
# Purchasing Other PhobGCC Parts
The remaining parts can be purchased from distributers as listed below:
* Teensy 4.0:
* **NOTE: Most likely out of stock. Ask in the discord**
* [PJRC](https://www.pjrc.com/store/teensy40.html)
* [Digikey](https://www.digikey.com/short/93vqqmzm)
* [Mouser](https://www.mouser.com/ProductDetail/SparkFun/DEV-15583?qs=bZr6mbWTK5kognUaBX05Cg%3D%3D)
* [Sparkfun](https://www.sparkfun.com/products/15583)
* [Adafruit](https://www.adafruit.com/product/4323)
* Hall Effect Sensors:
* **NOTE: For the magnets listed in this guide using the height in the PhobGCC Build Guide, there is no difference between low and high sensitivity sensors**
* [Digikey Low Sensitivity](https://www.digikey.com/short/8z9r4943)
* [Digikey High Sensitivity](https://www.digikey.com/short/5qqfr2qh)
* [Mouser Low Sensitivity](https://www.mouser.com/ProductDetail/Texas-Instruments/DRV5053CAQLPGM?qs=1CfNGUMoiQ%252B%252B%2F8tKZitESA%3D%3D)
* [Mouser High Sensitivity](https://www.mouser.com/ProductDetail/Texas-Instruments/DRV5053EAQLPG?qs=U0ECReq1GB%2FEJedkxMZGLA%3D%3D)
* Low Profile Header Pins:
* **NOTE: The main requirement is that the pitch mating is 2.54mm and that the insulation height is 1.52mm. Any headers of this specific size will work. NORMAL ONES WON'T**
* **NOTE 2: You only need one unit of either of the following per controller. These come in length 36.**
* [Digikey](https://www.digikey.com/short/qmwbq233)
* [Digikey](https://www.digikey.com/en/products/detail/samtec-inc/TLW-136-05-T-S/1105024) - more expensive
* Magnets:
* [DH1H1 Magnets](https://www.kjmagnetics.com/proddetail.asp?prod=DH1H1) - For a jack-of-all trades, use these.
* [D12 Magnets](https://www.kjmagnetics.com/proddetail.asp?prod=d12-n52) - For best control at the rim (like Pivots), use these.
* [N30H Magnets](https://www.digikey.com/short/br3n8hz3) - For best control at the center (like ICs desyncs), use these.
* [Canadian option](https://www.indigoinstruments.com/magnets/rare_earth/discs/small-neodymium-cylinder-magnet-2.5x2.5mm.html) - Similar to DH1H1
* [For EU](https://www.supermagnete.de/eng/disc-magnets-neodymium?length-or-diameter=2.00,3.00&height=2.00,3.00)
* High Viscosity Glue:
* [Gorilla superglue gel](https://www.amazon.com/dp/B00OAAUAX8)
* [Epoxy](https://www.mcmaster.com/66195A13/)
* Magnet Holders:
* See the `3d-printing` channel in the discord for printable designs that will hold magnets to the stickbox. Use in concert with the above adhesive for easy and secure attachment.
* Optional Mouse Buttons for ABXYLR:
* [Low Actuation Force Buttons](https://www.digikey.com/short/q4r0jh3j)
* [High Actuation Force Buttons](https://www.digikey.com/short/dcddr0jr)
* [Teflon Tape For Support](https://www.mcmaster.com/76475A51/)
* Optional Discrete Buttons for D-Pad:
* [SMD Buttons](https://www.digikey.com/short/v93wrw12)
# Purchasing Other GCC Parts
The GCC-specific Parts have a few different methods of acquisition
* Stickboxes
* T3 GCCs as per [this guide](https://gccontrollerlibrary.com/guides/gamecube-controller-stamps-guide/)
* Official Wii Classic and Wii Classic Pro Controllers
* Sold Loose on [Etsy](https://www.etsy.com/)
* Trigger Potentiometers
* Any GCC
* Official Wii Classic Controllers (No Handles)
* [Kadano Etsy Shop](https://www.etsy.com/shop/Kadano?ref=simple-shop-header-name&listing_id=1187350029) - if in stock
* Cable with a GCC Plug
* Any GCC
* Alibaba Cables
* [Liquid Cable](https://firescc.com/diy-custom-cables)
* Rumble Bracket
* Any GCC
* [Wumble](https://github.com/wavtype/wumble)
* [FIRESCC](https://firescc.com/mod-guides#/rumble-bracket)
* Z-button Switch
* Stock - Any GCC
* Tactile - Official Wii Classic Controllers (No Handles)
* Tactile - [BattleBeaverCustoms](https://battlebeavercustoms.com/products/replacement-gamecube-tactile-z-switch)
* Tactile - [FIRESCC](https://www.etsy.com/listing/753452766/fires-performance-mod-kit-for-the?)
* Tactile - [Digikey](https://www.digikey.com/short/hp5vvv7w) **NOTE: NEEDS SOME MODIFICATION OF CONTROLLER BUTTON RUBBER**
* Mouseclick - [SimpleControllers](https://simplecontrollers.bigcartel.com/mouseswitch-z)
* Optional Rumble Motor
* Any GCC
* [Cellphone Rumble](https://www.amazon.com/10-Pieces-Vibration-Motor-Vibrating/dp/B00N9J3BTG)
================================================
FILE: For_Users/Extras_Guides/ESS_Adapter.md
================================================
# ESS Adapter Guide
This is a guide for enabling ESS Adapter functionality for the PhobGCC.
# Prerequisites
As with all Extras, it must be built into the firmware and enabled by first
following the [Extras Guide](/For_Users/Extras_Guides/Phob_Extras_Guide.md).
# Overview
In Ocarina of Time for the WiiVC, the default mapping for the control
stick is notoriously tragic. This is an Extra that utilizes the control
stick mapping LUT (Lookup Table) from [Skuzee's ESS Adatper](https://github.com/Skuzee/ESS-Adapter)
to provide a more natual control stick mapping that closely resembles what it
would feel like playing on a Nintendo 64.
# Toggling and Configuring
### Toggling
When enabled, the control stick will have the LUT applied. __This will look weird in smashscope__,
but this is how it's supposed to look as these control stick values map to a more natural
experience when playing Ocarina of Time on WiiVC.
When disabled, the PhobGCC will not apply the LUT and mapping will not be affected.
### Configuring
As of now, there are no configuration options as the mapping is a fixed LUT.
# Troubleshooting
If you have any issues enabling this Extra, please refer to the PhobGCC Discord's tech support.
[PhobGCC Discord](https://discord.gg/yrpUu7mgzm)
================================================
FILE: For_Users/Extras_Guides/Phob_Extras_Guide.md
================================================
# PhobGCC Extras Guide
This is a guide to enabling Extras, community-created features that require to be manually enabled in the PhobGCC firmware.
# Prerequisites
* The ability to flash the PhobGCC firmware normally by following the [Phob Programming Guide](/For_Users/Phob_Programming_Guide.md).
# Directional Configurations
When enabling an Extra, it must be assigned to one of 4 cardinal directional
configuration slots to toggle the feature and and configure its settings.
The two button combinations that are used to toggle and configure Extras are:
* Toggle: A + B + Analog and C-Stick pointed Up/Down/Left/Right
* Configure: A + Dpad + Analog and C-Stick pointed Up/Down/Left/Right
Do note that since toggling and configuring Extras is a part of general configuration, they only function if you are not in safe mode.
For configuration, each dpad direction can be used to configure the Extra, but it's up to each Extra's
implementation to determine how it uses each direction of the Dpad. Please refere to the documentation
of the Extra you wish to enable to see how to configure it (if the Extra uses configuration).
# Enabling Extras
## Opening extras.h
Navigate to the folder where you downloaded the PhobGCC firmware, you should
see three folders along with the 'PhobGCC.ino' project file.

Open the 'extras' folder and there should be a file named 'extras.h' inside.
Open it by right clicking it and opening it with Notepad or a text editor of choice.

## Enabling an Extra
Look at the top of the document for the following section:
```c++
/* Plugins and extra features outside the normal scope of
* the PhobGCC can be found here. Uncomment each #define
* to include the features they provide in a build then
* set the configuration slot it uses (if it needs configuration)
*
*/
//------------------------------------------------------
//#define EXTRAS_ESS
//------------------------------------------------------
```
Here there is a list of Extras you can enable. Currently we only support one,
which is ESS functionality for Ocarina of Time for WiiVC, but with time there
will be more to pick from.
Find the Extra(s) you wish to enable, then delete the `//` that comes at the
start of the line that looks like: `//#define EXTRAS_EXAMPLE`.
If I wanted to enable the ESS Extra, my 'extras.h' would look like this:
```c++
/* Plugins and extra features outside the normal scope of
* the PhobGCC can be found here. Uncomment each #define
* to include the features they provide in a build then
* set the configuration slot it uses (if it needs configuration)
*
*/
//------------------------------------------------------
#define EXTRAS_ESS
//------------------------------------------------------
```
## Setting an Extra's Configuration Direction
Next, you will need to set the configuration direction for the Extra.
Scroll to the bottom of the file until you find the configuration block
related to the Extra you wish to enable.
For example, the ESS Extra looks like this:
```c++
#ifdef EXTRAS_ESS
//-----------------------------------------
ess::extrasEssConfigSlot = EXTRAS_UNSET;
//-----------------------------------------
Serial.println("Extra: Enabling ESS functionality...");
extrasConfigAssign(ess::extrasEssConfigSlot, ess::toggle, NULL);
#endif
```
Look for the config slot direction for the Extra you enabled and replace `EXTRAS_UNSET`
with one of:
* `EXTRAS_UP`
* `EXTRAS_DOWN`
* `EXTRAS_LEFT`
* `EXTRAS_RIGHT`
You can only have one Extra per direction, for a total of 4 Extras enabled maximum.
If I were to set the ESS Extra to Sticks Down, the code would then look like this:
```c++
#ifdef EXTRAS_ESS
//-----------------------------------------
ess::extrasEssConfigSlot = EXTRAS_DOWN;
//-----------------------------------------
Serial.println("Extra: Enabling ESS functionality...");
extrasConfigAssign(ess::extrasEssConfigSlot, ess::toggle, NULL);
#endif
```
If you leave the configuration direction unset, you **will not** be able to toggle or configure
the extra you enabled!
When you are finished, save extras.h and re-flash the firmware by using the Arduino Software.
# Toggling and Configuring an Extra
Once you've finished flashing your PhobGCC with the Extra-enabled firmware, you can then
toggle and configure the Extra you enabled (assuming you're not in safe mode) by using the button combinations listed at the
start of this document and following the configuration guide for the Extra you enabled.
# Troubleshooting
If you have any issues enabling Extras, please refer to the PhobGCC Discord's tech support.
[PhobGCC Discord](https://discord.gg/yrpUu7mgzm)
================================================
FILE: For_Users/Phob2_Programming_Guide.md
================================================
# PhobGCC v2.0 Programming Guide
This is a guide to programming the teensy microcontroller on PhobGCC v2.0.
# Tools
* A computer running Windows, MacOS, or Linux.
* A screwdriver for opening your controller (Tri-point is the stock screw, but some controllers may be built with Torx or Phillips).
* A data-capable micro-USB cable.
# Controller Disassembly
Unplug and then open your controller by removing the six screws on the back located at the end of the handles, near the triggers, and behind the C-stick and D-pad.
Pull the back shell off and lay it down.
Carefully lift the board out of the shell and place the front shell down.
# Downloading and Flashing The PhobGCC v2.0 Firmware
Go to the [Releases](https://github.com/PhobGCC/PhobGCC-SW/releases) section of the PhobGCC-SW Github and download the latest available firmware. For the PhobGCC v2.0 board, you will want to download the .uf2 file as shown below:

Move the .uf2 file to somewhere you can easily find it. Then unplug your controller from the adapter or console it is connected to, hold down the button on the front of the board, and plug the controller in as shown below:
**NOTE: It is easier to plug in Micro-USB first and then hold the button and plug in USB-A on your computer**

You should have it appear as a mass storage device, similar to a flashdrive. Drag the .uf2 file onto the controller.
Once the transfer is finished, the USB mass storage device will automatically disconnect.
If you re-connect it, the .uf2 file will not appear to be there.
This is normal.

Once this is complete, you can unplug your PhobGCC and reassemble the controller. Continue to the calibration guide.
# Troubleshooting
## Controller not accepting any commands
Should the controller not be accepting any commands, there is a chance that the flash may have come with garbage data and it may be messing the controller up. Follow the steps below:
1. Download [This file](https://drive.google.com/file/d/15iXiLqbS9To-jfmHwR3WShfgkgc5nex1/view?usp=sharing).
2. Flash that file onto your PhobGCC v2, and **don't** disconnect the Micro-USB cable. After about 10 seconds, It'll reconnect as a mass storage device again.
3. Flash the normal firmware and proceed with calibration.
For all other issues, please refer to the PhobGCC Discord's tech support.
[PhobGCC Discord](https://discord.gg/yrpUu7mgzm)
================================================
FILE: For_Users/Phob_Buying_Guide.md
================================================
# PhobGCC Buying Guide: How to Evaluate a Phob
So you want to buy a PhobGCC, but you may not know what to look for, and you may not know how experienced the seller is at making them. We on the PhobGCC team are planning on vetting Phob makers in the hopes that there will be people you can trust, but not everyone making them will be certified. It is an open project, after all.
This is especially important if you're buying used, since you may not know who assembled it at all.
This guide aims to show you what to check for, ideally before you buy. If buying in-person, ask the seller to take it apart to show you if they're not on our list.
# Easy Things to Look For
This section is for things that are simple to verify without technical knowledge: whether it works, and important part selection.
## What Version
PhobGCC comes in several board revisions, which are identifiable by the number following the PhobGCC name. Some are much more common than others.
Which board version you have affects how you update the firmware.
### 1.0

* Very rare.
* Has no rumble.
* Has no support for Hall-effect C-sticks.
### 1.1

* Somewhat common.
* Has no rumble.
* Has support for Hall-effect C-sticks. The above photo has a potentiometer C-stick board from an OEM controller; this is not desirable.
* Exists in three variants with the same board, but each needs its own individual firmware:
* Teensy 3.2: the standard version, where the main chip on the Teensy has many visible legs on all four sides. Not that common due to a Teensy 3.2 shortage.
* Teensy 4.0: an alternate microcontroller option that can be distinguished by having no legs. These also have a wire added by hand going across the Teensy board.
See photo below for what a Teensy 4 looks like on a PhobGCC 1.1.
* Teensy 4.0 with Diode Fix: similar to above, but pins 7 and 8 on the Teensy may be shorted, or the diode next to the connector may be shorted.

### 1.2:


* Has rumble support.
* Has mouse button support on the face buttons other than Start.
* Exists in three different board variants *with shared firmware support*.
* 1.2: A handful of prototypes exist.
* 1.2.1: A few resistor/capacitor values were changed. Only a few prototypes exist.
* 1.2.2: Wide release. D-pad, Hall sensor, and rumble motor contacts were changed. C-stick and mouse-button-supporting L/R paddles come attached to the main board to ensure all Phobs have no OEM C-stick boards.
Some customized versions may exist, but all are required by the license to remove the Phob Ghost icon and the PhobGCC name. Ask the seller for info on what versions they were based on.
## Functionality
Obviously, the controller should work. All buttons, triggers soft and hard (unless explicitly modified to remove soft-press), d-pad, and control sticks. If the board is version 1.2 or later, rumble should function too.
If trigger hard press is disabled in hardware, then many aspects of controller configuration will be impossible.
The sticks should not be very noisy or jittery when held off-center, but jitter between two adjacent values is acceptable. Notches should have repeatable coordinates when entered from the same direction, though they may have different coordinates if entered differently (clockwise, counterclockwise, straight from the center).
The controller should be set up so that it doesn't have snapback. You can test this in game, but ideally you can run Smashscope on a Wii+480i CRT to see graphs.
## Stickbox
The stickboxes which contain the stick mechanism should be T3, which are entirely white plastic and mounted with two screws on the underside of each.
T1/T2 stickboxes, which have metal frames around plastic innards, are far more prone to wear and becoming loose. Additionally, they are soldered down, making them difficult to replace. This effectively limits the lifespan of a PhobGCC.
## C-Stick Board
The C-Stick board should be a PhobGCC one with magnets, rather than an OEM C-Stick board with potentiometers.
While an OEM C-Stick can function when new, the PhobGCC is not designed to gracefully handle any PODE that develops in the potentiometers, and you *will* get misinputs as the stick wears.
This also limits the lifespan of a PhobGCC, although it is not difficult for an experienced Phob maker to remedy if they have the parts.
## USB Cable
If your PhobGCC came with mouse button switches installed for ABXY, the Y button gets in the way of the USB port on the Teensy and the seller should include a right-angle or 180 degree USB cable that clears the mouse button switches.
# Intermediate Things to Look For
Here is where we begin evaluating the quality of the work.
## Soldering Workmanship
### Shorts
There must be no connections made between pads that are close together. You should be able to see green completely separating the solder.
### Solder Joint Shininess
It is commonly believed that solder joints are supposed to be shiny, but that mainly applies to leaded solder (Sn63 or Sn60), not lead-free solder (such as SAC305). Most commercial products these days use SAC305 or similar due to regulations, but Sn63 is still often preferred by hobbyists for its ease of use.
Ask your vendor what kind of solder the PhobGCC you are evaluating was made with before judging the joint quality by how shiny they are.
### Solder Bonding
All solder joints should have the solder clearly sticking to both the component and the board in order to make a strong physical and electrical connection.
### Solder Quantity
The entire pad on the board should be wet out with solder, but there ideally should not be enough solder to form a convex ball.

This is an example of a solder joint that has poor contact with the board and caused undesirable stick behavior.
## Physical Workmanship
### Solder Joint Height
The pins below the Teensy must not protrude below the bottom of the board or else they will interfere with the plastic rumble bracket.
Likewise, the solder joints for the Hall effect sensors for the main stick should be cut fairly close to the PCB or else they will make it difficult to close the controller.

This work is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-sa/4.0/).
================================================
FILE: For_Users/Phob_Calibration_Guide_Latest.md
================================================
**NOTE: This is for firmware version 0.31.**
For older versions, use the appropriate calibration document [from here](../LEGACY.md).
For later development versions of the software that have not yet been released, search for “Current Commands List” in the `common/phobGCC.h` file to see the commands for that version as they may have changed.
**NOTE 2: The controller starts in safe mode! To make any changes you must disable it first!**
We strongly recommend using GCC Test Suite (GTS) either on a Wii or vanilla Dolphin for all of this. Slippi will not run GTS.
You can get GTS [from here](https://github.com/greenwave-1/GTS/releases/latest).
Previously we recommended SmashScope and Uncle Punch Training Mode 3.0 (now Training Mode Community Edition), but it is much easier to verify correct calibration on GTS.
# PhobVision
If you have a PhobGCC 2 with PhobVision installed and a CRT available, it's highly recommended to calibrate and configure using PhobVision.
PhobVision has menu options for all of these settings, and it walks you through the stick calibration process to minimize the chance of user error.
To use PhobVision, plug a 3.5mm TRRS to RCA cable compatible with Sony camcorders into the jack on the controller and the composite video input on a CRT television, hold Z on the controller, and plug the controller's GCC cable into a powered-on console or adapter.
Navigate with the D-pad, select an item by pressing A, and back out by holding B.
Some menu pages are not complete yet, and on these you will be greeted by an "Under Construction" sign.
Full PhobVision manual available [here](/For_Users/Phobvision_Guide_Latest.md).
# Initial Setup
Do this if the controller has never been calibrated before, or if it has been flash nuked or hard reset.
If the controller is functioning normally, this has already been performed and you do not need to repeat the full process.
## Wii Initial Setup
* Turn on the Wii.
* Plug in the controller.
* Start GCC Test Suite.
* Navigate to Controller Test (using the D-Pad).
* Tap B (do not hold) to initialize the sticks.
* Verify that the Origin XY and C-Origin XY are both (-001, -001).
## Dolphin Initial Setup
* Install the latest Dolphin emulator (do not use Slippi Dolphin).
* Set up the controller menu so that Port 1 is GameCube Adapter for Wii U.
* Plug in the controller. DO NOT PRESS B.
* Begin emulation (run GTS_GC.dol).
* Navigate to Controller Test (using the D-Pad).
* Tap B (do not hold) to initialize the sticks.
* If using an OEM or Mayflash adapter or older Lossless adapters, verify that Origin XY and C-Origin XY are both (-1, -1). If using a HHL GC Pocket adapter or a newer firmware version of Lossless, the origins should be zero.
## Controller Setup
* Verify that the sticks are both pointing slightly up and to the right. At neutral, they should be somewhere in the range of 0.3 to 0.6. When moved, they should respond very slightly, going in all four directions. If this is not the case, there is a hardware problem that must be resolved before proceeding with calibration.
* Toggle off Safe Mode by holding **AXY+Start** for until the sticks jump to the extreme top right, then immediately letting go.
* Calibrate the left analog stick with **AXY+L**, following [this procedure](#analog-stick-calibration---axyl). The left stick should now behave normally.
* Calibrate the right analog stick with **AXY+R**, following [this procedure](#C-Stick-calibration---axyr). The right stick should now behave normally.
* Adjust snapback filtering to reduce snapback to roughly 20 or less in each direction. If snapback won't be fully corrected at maximum filtering strength, add some thick silicone grease into the stickbox to slightly reduce the unfiltered snapback to within the range of the snapback filter.
# Activating the Analog Sticks - B
* After plugging in the controller, press **B** to activate the analog sticks. Before this, the sticks are hardcoded to be centered so that the game properly zeroes.
* If you are playing using Dolphin/Slippi, you must first have Dolphin running, then have the controller plugged in before starting the game.
* By enforcing that the sticks are centered when starting the game, this ensures that you get 1.0 cardinals and accurate notches.
* If you are using a Mayflash adapter, you must plug in both USB connectors for the controller to register in Dolphin/Slippi.
* This is necessary because if the sticks are miscalibrated, it will be very difficult to correctly calibrate them with the sticks incorrectly zeroed.
* Once the sticks are calibrated and you are sure they are reliably zero when released, you can disable this. See [here](#toggle-auto-initialize---axyz).
* But each time you reset or calibrate, you will once again be required to press B.
# Making Changes On PhobGCC
* **All commands use the physical buttons specified, regardless of any remapping that has occurred**.
* L and R buttons must have electrically functional digital press, regardless of trigger modes that disable the digital press.
* Most of the time, when you give the PhobGCC a command, the Analog Stick and C-Stick will freeze pointing to the top right 127/127.
* For binary commands, it'll hold for two seconds.
* For numerical values, it'll hold for 0.75 seconds to make it faster to change.
* For trigger offsets, which have a wide numerical range, it will only hold for 0.1 second.
* If you're in Melee without input visualization tools, you will see your character roll to the right to indicate this, or you'll see the menu tilt due to the C-Stick.

# Safe Mode/Configure Mode Toggle - AXY+Start
The controller begins in Safe Mode, where the only command that works is this toggle, in order to prevent accidental settings changes.
To make any changes to the controller configuration, activate this toggle to enter Configure Mode.
* To enter Configure Mode, you have to hold the key combination for about 1 second, to prevent accidental activation.
* Turning Safe Mode back on has no delay.
* As a reminder, all commands including this one utilize the hardware buttons specified, regardless of remapping.
* Even if you haven't pressed B, this will wake up the sticks. It responds instantly if the sticks haven't activated yet, due to an implementation quirk.
* When you enter Configuration Mode, the controller freezes for 2 seconds.
* When you turn Safe Mode back on (you can no longer configure), the controller freezes for 4 seconds to distinguish. You can also just unplug and plug the controller back in to ensure that you are back in Safe Mode.
* If either L or R digital is active, this command will not work (to prevent safe mode toggling when doing PM salty runback).
# Display Software Version - AZ + Du
* The C-Stick will display the software version in raw units as if it were not preceded by the "0."
* The Y-axis will show the tens and ones digits. In this case, it would be 31.
* The X-axis will show the thousands and hundreds digits. In this case, it would be 0.
* You must use GTS to see this numerically.
* If the controller doesn't show 31, then you need to reference an older configuration document [here](../LEGACY.md).
* If it doesn't respond to this command at all, then it's likely the version is 0.23 or lower and you should [upgrade the controller firmware](/For_Users/Phob_Programming_Guide.md).
# Controller Reset - Hold ABZ then press Start
* **Use this if you are upgrading from an older software version or have messed up your settings in some way.**
* **You need to turn off Safe Mode in order to reset.**
* This will reset all the controller settings except for stick calibration. This includes snapback filtering, waveshaping, analog delay, offsets, and button remapping.
* There is a hidden hard reset option that will also erase the stick calibration, but we are not publishing the button combination because it's unhelpful almost all of the time. Ask the devs in the Discord what it is if you really need this.
# Toggle Auto-Initialize - AXYZ
* When you turn this on, both sticks will briefly point up and to the right. When you turn it off, both sticks will briefly point down and to the left.
* If you are positive that both of your sticks are calibrated well, you can use this to avoid the need to press B when plugging the controller in.
* If calibration ever gets wonky, you need to disable this, then recalibrate.
* This automatically gets turned off when you:
* Recalibrate: if you mess up the calibration then the controller won't initialize correctly and it'll be hard to calibrate properly
* Reset: if you reset it returns everything to defaults including this setting.
# Rumble Strength Configuration - AB + Du/Dd
* Rumble is only available on boards version 1.2 or later. This command will do nothing for earlier boards.
* Press **AB** + **D-pad Up/Down** to increase or decrease the rumble strength.
* There are settings from 0-11.
* 9 is roughly equivalent to an OEM controller's rumble.
* 0 turns off rumble entirely.
* Press **AB+Start** to show the current rumble setting on the C-Stick.
# Tournament Toggle Configuration - Z + Start + D-pad Up
This command was changed in version 0.31 to prevent accidental activation.
* Tournament Toggle reduces the chance of misinputs of either Start or D-Pad Up (taunt) during gameplay.
* Press **Z + Start + D-pad Up** to switch to the next mode. The mode will be shown on the C-Stick.
* There are 6 different modes, ranging from 1 to 6.
* Mode 1: Default behavior: both buttons respond immediately.
* Mode 2: D-Pad Up must be held for 1.5 seconds to activate.
* Mode 3: D-Pad Up is disabled entirely.
* Mode 4: Start must be held for 1.5 seconds to activate.
* Mode 5: Start and D-Pad Up both must be held for 1.5 seconds to activate.
* Mode 6: D-Pad Up is disabled entirely and Start must be held for 1.5 seconds to activate.
* You can bypass the lockout or delay. For D-Pad Up, holding D-Pad Up and then pressing Start will output only D-Pad Up. For Start, holding Start and pressing D-Pad Down will output only Start.
# Raw Stick Output - L+R+Du/Dd
This command is new in version 0.31.
Raw stick output isn't a setting, but a temporary mode that helps diagnose stick issues.
Instead of the remapped stick output, it shows the unprocessed sensor values in a range from 0 to 100.
Enable it with **LR** + **D-pad Up** and disable it with **LR** + **D-pad Down**.
Alternatively, if you hard reset the controller (or have never calibrated it before) any uncalibrated sticks will default to raw stick output.
With the sticks centered, Phob 2s and some Phob 1.2s should be close to 50. Phob 1.1s and most Phob 1.2s should be roughly 30.
When you move a stick horizontally or vertically, the raw output should change only in that axis by at least 10 in each direction.
If this isn't the case, then the hardware likely needs some sort of repair.
# Analog Stick Calibration - AXY+L
Before calibrating, you must check that the Origin XY and C-Origin XY are both (-001, -001). For newer Lossless and GC Pocket+ adapters, they should both be 0.
If you suspect something is wrong with the controller you must verify that the sticks are working electrically. To do so, put the controller into Raw Stick Output mode and verify that the sticks are centered roughly on +30 or +50, and are sensitive enough to stick motion in all axes. When you move the sticks in a circle around the gate, they should move in a small circle onscreen.
[Basic PhobGCC Analog Stick Calibration - YouTube](https://www.youtube.com/watch?v=rkgtqwIE8Iw)
[PhobGCC Analog Stick Calibration Guide - YouTube](https://www.youtube.com/watch?v=nUbpmkcleF8)
[PhobGCC Notch Calibration Guide - YouTube](https://youtu.be/hscmtzy7dqs)
* Stick calibration has two phases: measurement and notch adjustment.
* During the Measurement Phase, you have the controller record the physical location of the corners of the gate and any modder-added notches.
* During the Notch Adjustment Phase, you can tweak the output angles of the notches you measured.
* You **must** complete both measurement and notch adjustment for the setting to be saved.
* If you’ve already calibrated the stick and just want to adjust notches you have already measured, you can skip the measurement phase and immediately begin notch adjustment by pressing Start at any time during the measurement phase.
* Calibrating either stick turns off Auto-Initialize.
## Measurement Phase
The first phase involves having the controller record the positions of the physical gate corners and notches as calibration reference points.
When in the measurement phase, the C-Stick's output will alternate between the center and a position along the rim, starting with the cardinal directions.
The C-Stick's output shows what notch, if present, you are to measure.
The control stick output will show the output of the previous calibration. Depending on the previous calibration, this may be accurate, inaccurate, freak out randomly, or in the case of an uncalibrated PhobGCC 2.0, it will be mostly pegged to (125,125). The output you see here has no bearing on the results.
* If the C-Stick is centered, let go of the control stick and press either **L**, **R**, or **A** to measure that position.
* If the C-Stick is not centered, **hold the physical analog stick into the notch indicated by the C-Stick's output** and press **L**, **R**, or **A** to measure that position.
* Make sure to enter the notch from the direction you would during gameplay.
* If you don't have a notch at the position indicated by the C-Stick, **let go of the stick** and press **L**, **R**, or **A**.
* **You must measure all four cardinal directions (East, North, West, South) and all four diagonal directions** or calibration will not work.
* The first time you calibrate a controller that has modder-added notches, it is highly recommended to skip all the modder added notches and start with only the 8 primary directions.
* If you think you messed up a measurement, you can go back to a previous notch measurement by pressing **Z**. It'll go back to measuring the center immediately before a given notch.
* Once you finish measuring all the notches (32 presses of **L/R/A**), the stick should behave normally. **You are not done calibrating.** Proceed to the [Notch Adjustment Phase](#notch-adjustment-phase) below.
* If it does not behave as expected, see Measurement Phase Troubleshooting below.
### Measurement Phase Troubleshooting
* If the Analog Stick's output is not accurate during this phase, do not worry. The previous calibration does not matter.
* If the C-Stick is not alternating between being centered and circling all the way around the rim, and you are using Dolphin to calibrate, you need to reinitialize Dolphin by making sure that Auto-Initialize is off, unplugging and replugging, restarting Dolphin, and then tapping **B**.
* If after the measurement phase is done, the stick has one or two sectors that jump into another quadrant randomly, you probably mis-measured a notch. Mash **L**, **R**, or **A** a bunch to finish the calibration and start again.
* If after the measurement phase is done, the stick output is completely haywire and jumping all over the place randomly, you may have let go of the stick before pressing **L**, **R**, or **A**. Mash **L**, **R**, or **A** a bunch to finish the calibration and start again.
* Alternatively, if you have Firefox notches, try calibrating the main 8 directions only to completion, then go back and calibrate all of them.
* If after the measurement phase is done, the stick output is backwards on one or both axes, you probably were trying to make the stick *output* match the C-Stick, instead of moving the *physical* stick into the notch indicated by the C-Stick. Mash **L**, **R**, or **A** a bunch to finish the calibration and start again.
## Notch Adjustment Phase
After the measurements are complete, this phase lets you adjust exactly where the non-cardinal notches are mapped to.
When in the notch adjustment phase, the C-Stick will stay along the rim and rotate along from notch to notch, starting with the diagonals.
This indicates which notch is currently being adjusted.
* The Analog Stick position does not affect notch adjustment. The output is a live preview of how the calibration will be with your given adjustments.
* The C-Stick points at the notch that is currently up for adjustment.
* Press **X** or **Y** to shift the output of the notch clockwise or counterclockwise, respectively.
* You won't see anything change if you don't put the stick into the notch that's being adjusted.
* Make sure to enter the notch from the same direction you would during gameplay when checking the output.
* To reset to an undistorted position for the notch, press **B**. The C-Stick will be displaying the position that was measured.
* Press **L**, **R**, or **A** to move to the next notch.
* To go back to a previous notch, press **Z**. You cannot go back to the measurement phase.
When the C-Stick's output returns to center, the stick calibration is now saved.
### Notch Adjustment Troubleshooting
* If your notch coordinates are very inconsistent, try twisting the stick like a knob and see if the origin value shifts. If so, try gently tightening the screws holding the stickbox down; they may be loose.
* If your notch coordinates have slightly different values when approaching straight from center compared to rolling clockwise or counterclockwise along the rim, this is normal (within two or three values).
* If your notch coordinates cannot be adjusted to the desired value, check the C-Stick's coordinates to see if it's too far from the desired value. You can try recalibrating from the start and measuring it again, but it may not help. See a modder to get your notches adjusted if needed.
# C-Stick Calibration - AXY+R
This process is exactly like Analog Stick Calibration, but instead, the Analog Stick moves to show you how to move the C-Stick.
# Analog Stick Smart Snapback Adjustment - A + X/Y + Du/Dd
Increasing the Analog Stick Smart Snapback Filter adjustment doesn’t hurt responsiveness of the stick when moving away from the center. Increasing the value of this filter only makes it return to center more slowly.
* Press **A** + **X/Y** for your axis + **D-pad Up/Down** to increase/decrease.
* Example: **AX+Du** suppresses X-axis snapback more, **AY+Dd** suppresses Y-axis snapback less.
* When you change this setting, the current snapback filter settings are shown as the numerical coordinates of the C-Stick.
* The scale goes from -10 to +10, and defaults to 4.
* 0 completely disables the Smart Snapback Filter. This removes the rise time improvements, hurting dashdancing on the X axis, and you will have snapback.
* Positive values have strong rise time reduction that promotes fast tilt inputs into smash inputs.
* Higher values have stronger snapback suppression.
* 4-10 is equivalent to 1-7 on v0.22-0.23 and 0-6 on v0.21.
* Negative values are a new filter that minimizes rise time reduction and makes the stick behave more like an OEM controller.
* More negative values have stronger snapback suppression.
* Sticks usually need a setting of 4-7. 9+ is for special situations such as metal stick caps or lighter spring weights.
* If you have an OEM stick cap and snapback is still a problem, try setting the snapback filter to 0 and check how far the snapback goes. If it goes past 70, you may have to tame snapback by adding a bit of grease to the stickbox.
* Press **L+Start** to see the current Smart Snapback filter values on each axis of the Analog Stick.
* At the same time, you can see the current axis smoothing values on the C-Stick and Waveshaping values on the triggers.
# Analog Stick Waveshaping Adjustment - L + X/Y + Du/Dd
The Waveshaping filter stops the output from moving while the stick axis is moving quickly.
This setting controls the threshold where that transition occurs.
This can be used to make pivots or short flicks behave more like a good OEM controller.
This enhancement to pivots and flicks works best with an OEM spring or a Smalley L2 spring, not with lighter "slickbox" style springs, but you can crank it up and make it work at the expense of responsiveness.
* Press **L** + **X/Y** for your axis + **D-pad Up/Down** to increase/decrease.
* Example: **LX+Du** strengthens the effect on the X-axis, **LY+Dd** reduces the effect on the Y-axis.
* When you change this setting, the current Waveshaping filter settings are shown as the numerical coordinates of the C-stick.
* The scale goes from -24 to +24, and defaults to 0.
* 0 disables Waveshaping entirely.
* Positive Waveshaping behaves like mild PODE.
* Negative Waveshaping behaves like strong PODE. Strong negative Waveshaping in combination with zero Smart Snapback suppression this can be used to mimic OEMs that cannot empty pivot while suppressing all snapback. Small negative Smart Snapback can be used to attenuate this effect.
* Press **L+Start** to see the current Waveshaping filter values on the L and R trigger analog values.
* At the same time, you can see the current Smart Snapback filter values on the Analog Stick and the axis smoothing values on the C-Stick.
# Analog Stick Axis Smoothing Adjustment - R + X/Y + Du/Dd
The Analog Stick Axis Smoothing is just a simple low-pass filter similar to a capacitor on a vanilla Gamecube controller.
Increasing this setting slightly reduces responsiveness.
If you have the Smart Snapback Filter disabled, you can use this to suppress snapback.
* Press **R** + **X/Y** for your axis + **D-pad Up/Down** to increase/decrease.
* Example: **RX+Du** increases the X-axis Delay, **RY+Dd** decreases the Y-axis delay.
* When you change this setting, the current axis smoothing settings are shown as the numerical coordinates of the C-Stick.
* The scale goes from 0-18, and defaults to 0.
* Single-Motion Ledgedashing: ~5 on X-axis and 0 on Y-axis
* Alternatively, set the Smart Snapback adjustment on the Y-axis to 0 and set the Axis Smoothing to 0 for both X and Y-axes. This gives stronger single-motion ledgedashes but you may experience Y-axis snapback.
* 9 in versions before 0.31 was changed to 18, adding increased precision between 8 and the former 9.
* Press **L+Start** to see the current axis smoothing values on each axis of the C-Stick.
* At the same time, you can see the current Smart Snapback filter values on the Analog Stick and Waveshaping values on the triggers.
# Analog Stick Scaling Adjustment - L + A + Du/Dd
The Analog Stick Scaling setting allows the user to adjust what value the stick can reach at the edge of the gate.
Super Smash Bros. Melee has a unit circle that ranges from -80 to +80, OEM Gamecube controllers range from roughly -100 to +100, and the GCC protocol allows for -128 to +127.
The PhobGCC hard limits its own stick outputs to a range from -125 to +125, but this setting corresponds to what you get immediately after calibration.
* Press **L** + **A** + **D-pad Up/Down** to increase/decrease.
* Example: **LA+Du** increases the value at the rim of the analog stick.
* When you change this setting, the current analog stick scaling setting is shown as the numerical coordinates of the analog stick.
* The scale goes from 90-110, and defaults to 100.
* This changes the physical distance to the rim of the Melee unit circle.
* 100 will behave identically to previous firmware versions that do not feature stick scaling.
* In 0.31 the adjustment range was reduced to be rules-compliant.
# Analog Stick Cardinal Snapping Adjustment - R + A + Du/Dd
The Analog Stick Cardinal Snapping setting allows the user to adjust the width of the window around the cardinals around which the stick will snap to perfect 1.0.
This is mainly for use on vanilla Melee or versions of UCF v0.80 and prior, as all nonnegative values will be overwritten by UCF v0.84's own snapping algorithm (which corresponds to a setting of 6 here).
* Press **R** + **A** + **D-pad Up/Down** to increase/decrease.
* Example: **RA+Du** increases the snapping range of the analog stick.
* When you change this setting, the current analog stick cardinal snapping setting is shown as the numerical coordinates of the analog stick.
* The scale goes from -2 to 6, and defaults to 6.
* At -2, the stick will snap 7 units away from the cardinal so that the stick cannot output 1.0 cardinals at all, including on UCF v0.84.
* At -1, the stick will snap 1 unit away from the cardinal so that the stick cannot output 1.0 cardinals for Zelda teleport on UCF v0.84.
* At 0, the stick will not snap to cardinals at all. This is equivalent to OEM cardinal behavior.
* Between 1-6, the stick will snap to the cardinal from that far away in both positive and negative directions.
# C-Stick Snapback Adjustment - AZ + X/Y + Du/Dd
The C-Stick Snapback Filter is actually a low-pass filter similar to the Analog Stick Axis Smoothing that has dual purposes, for reducing the chance of getting the wrong move and for suppressing snapback.
* Press **AZ** + **X/Y** for your axis + **D-pad Up/Down** to increase/decrease.
* Example: **AZX+Du** increases the X-axis snapback suppression, **AZY+Dd** decreases the Y-axis snapback suppression.
* When you change this setting, the current filter settings are shown as the numerical coordinates of the C-Stick.
* The scale goes from 0-18 and defaults to 0.
* 9 in versions before 0.31 was changed to 18, adding increased precision between 8 and the former 9.
* To reduce the chance of getting the wrong move, increase the value on the axis that you don’t want, and decrease the value on the axis you do want.
* To fully suppress snapback on an axis, use a somewhat high value here (start with 7).
* Press **R+Start** to see the current snapback filter values on each axis of the Analog Stick.
* At the same time, you can see the current offset values on the C-Stick and Waveshaping values on the triggers.
# C-Stick Waveshaping Adjustment - LZ + X/Y + Du/Dd
The Waveshaping filter stops the output from moving while the stick axis is moving quickly.
This setting controls the threshold where that transition occurs.
* Press **LZ** + **X/Y** for your axis + **D-pad Up/Down** to increase/decrease.
* Example: **LZX+Du** increases the effect on the X-axis, **LZY+Dd** decreases effect on the Y-axis.
* When you change this setting, the current filter settings are shown as the numerical coordinates of the C-Stick.
* The scale goes from -24 to +24, and defaults to 0.
* 0 disables Waveshaping entirely.
* Positive Waveshaping behaves like mild PODE.
* Negative Waveshaping behaves like strong PODE. In combination with zero snapback suppression this is an alternate, highly effective way to eliminate all snapback, while helping make quick flicks more likely to be polled properly.
* Press **R+Start** to see the current Waveshaping filter values on the L and R trigger analog values.
* At the same time, you can see the current snapback filter values on the Analog Stick.
# C-Stick Offset
* This feature was removed in v0.29.
# C-Stick Scaling Adjustment - L + A + Z + Du/Dd
The C-Stick Scaling setting allows the user to adjust what value the stick can reach at the edge of the gate.
Super Smash Bros. Melee has a unit circle that ranges from -80 to +80, OEM Gamecube controllers range from roughly -100 to +100, and the GCC protocol allows for -128 to +127.
The PhobGCC hard limits its own stick outputs to a range from -125 to +125, but this setting corresponds to what you get immediately after calibration.
* Press **L** + **A** + **Z** + **D-pad Up/Down** to increase/decrease.
* Example: **LAZ+Du** increases the value at the rim of the C-Stick.
* When you change this setting, the current C-Stick scaling setting is shown as the numerical coordinates of the C-Stick.
* The scale goes from 90-110, and defaults to 100.
* This changes the physical distance to the rim of the Melee unit circle.
* 100 will behave identically to previous firmware versions that do not feature stick scaling.
* In 0.31 the adjustment range was reduced to be rules-compliant.
# C-Stick Cardinal Snapping Adjustment - R + A + Z + Du/Dd
The C-Stick Cardinal Snapping Adjustement allows the user to adjust the width of the window around the cardinals around which the stick will snap to perfect 1.0.
This is mainly for use on vanilla Melee or versions of UCF v0.80 and prior, as all nonnegative values will be overwritten by UCF v0.84's own snapping algorithm (which corresponds to a setting of 6 here).
* Press **R** + **A** + **Z** + **D-pad Up/Down** to increase/decrease.
* Example: **RAZ+Du** increases the snapping range of the C-Stick.
* When you change this setting, the current C-Stick cardinal snapping setting is shown as the numerical coordinates of the C-Stick.
* The scale goes from -1 to 6, and defaults to 6.
* At -1, the stick will snap *away* from the cardinal so that the stick cannot output 1.0 cardinals at all, including on UCF v0.84.
* At 0, the stick will not snap to cardinals at all. This is equivalent to OEM cardinal behavior.
* Between 1-6, the stick will snap to the cardinal from that far away in both positive and negative directions.
# Analog Trigger Modes AB + L/R
Modes 8 and 9 are new in version 0.31.
* Press **AB + L** to cycle through the trigger modes for L-trigger.
* Press **AB + R** to cycle through the trigger modes for R-trigger.
* Press **L+R+Z** to view all trigger settings without changing anything.
* Left trigger mode is on the left stick X axis.
* Right trigger mode is on the right stick X axis.
* Left trigger offset is on the left stick analog.
* Right trigger offset is on the right stick analog.
* There are 9 trigger modes:
* Mode 1: Standard behavior with the analog slider active and a digital press at the bottom of the travel. GTS will show red bars and then turn blue on digital press.
* Mode 2: Digital-only, where the analog slider is disabled. GTS will highlight the outline on digital press.
* Mode 3: Analog-only, where the digital press is disabled. GTS will show only red bars.
* Mode 4: Lightshield then Digital, where the analog slider will only go up to the user-defined max (see [below](#analog-trigger-value-adjustment---b--lr--dudd)) and then allow you to input a digital value. GTS will show red bars that rise but stop at a predefined value, and they will turn blue and max out on digital press.
* Mode 5: Analog Value At Digital, where the analog slider is disabled and the digital press will result in a user-defined analog value (see [below](#analog-trigger-value-adjustment---b--lr--dudd)). GTS will only show red bars.
* Mode 6: Analog and Digital Value at Digital, where the analog slider is disabled and the digital press will result in a user-defined analog value (see below) and a digital input. GTS will show only blue bars.
* This is useful when using a controller with trigger plugs for Smash Ultimate and other games that disregard the digital press.
* Mode 7: Hairtrigger Analog, where the analog value is multiplied between one and threefold based on the user-defined analog value (see [below](#analog-trigger-value-adjustment---b--lr--dudd)). The digital output is unchanged.
* The greater the value, the higher the multiplier. This is useful for Smash Ultimate so you don't need to push down as far to activate your shield.
* Mode 8: Lightshield on Analog: like mode 4 but with no digital output whatsoever.
* Mode 9: Hairtrigger Lightshield Then Digital: like mode 4 but with 2.5x more sensitive analog. This is useful for using analog with short travel triggers like keyboard switch triggers.
* When changing settings, the trigger modes are displayed as Analog Stick values for the L-trigger and C-Stick values for the R-trigger.
* Regardless of trigger modes (or remaps), L+R+A+Start will function and output full analog and digital on the triggers. This can be used to verify that the hardware is functioning properly.
# Analog Trigger Value Adjustment - B + L/R + Du/Dd
* For Analog Trigger Modes 4-6, this shifts the user-defined limit for the analog value.
* For Analog Trigger Mode 7, this adjusts the scaling of the analog value from 1x at 49 to 3x at 227.
* Press **B** + your trigger (**L/R**) + **D-pad Up** to increase or D-pad Down to decrease.
* The possible range of values goes from 49 to 227, with 49 being equivalent to Z-lightshield in Melee, the largest legal value.
* Melee treats all values 140 and above as the strongest analog shield.
* Ultimate only shields when the analog value is 79 or above.
* The values are displayed on the C-Stick, with the X-axis corresponding to L and the Y-axis corresponding to R.
* Once you cross above 100, the corresponding Analog stick axis will display 100 and the remainder of the value will be shown on the C-Stick.
* If you configure in Uncle Punch or 20XX, the C-Stick might not reflect the actual value when the displayed coordinate is outside the Melee input circle. Confirm your settings using GTS or by checking the actual resulting trigger value.
* Press **L+R+Z** to view all trigger settings without changing anything.
* Left trigger mode is on the left stick X axis.
* Right trigger mode is on the right stick X axis.
* Left trigger offset is on the left stick analog.
* Right trigger offset is on the right stick analog.
# Full Button Remapping - B + X + Y
This replaced predetermined trigger jump remaps in version 0.31.
* You can freely swap the A, B, D-pad Up, L, R, X, Y, and Z buttons.
* Press **B + X + Y without pressing A** to initialize the remapping process, then press the buttons you want to become A, B, Du, L, R, X, Y, and Z in that order.
* The easy way to remember this is that they are in alphabetical order.
* For example, if you wanted to swap just X and Z, you would press A B Du L R Z Y X.
* Pressing already-used buttons will have no effect.
* Press **B + X + R without pressing A** to reset the remaps to default.
* Any buttons swapped with a trigger only actuate on the digital press of the trigger.
* If you swap a trigger button to a digital-only button, you should probably use Mode 5 or 6 depending on the desired analog or digital behavior.
* Remaps have no effect on any of the commands used in this document.
* Remaps also are ignored if you press L+R+A+Start using the un-remapped buttons.

This work is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-sa/4.0/).
================================================
FILE: For_Users/Phob_Calibration_Guide_v0.20.md
================================================
**THIS IS LEGACY FIRMWARE! PLEASE UPDATE TO THE [LATEST!](/For_Users/Phob_Calibration_Guide_v0.28.md)**
**NOTE: This is for firmware version 0.20.**
For later development versions of the software that have not yet been released, search for “Current Commands List” in the PhobGCC.ino file to see the commands for that version as they may have changed.
**NOTE 2: The controller starts in safe mode! To make any changes you must disable it first!**
I strongly recommend using Smashscope (either on a Wii or Dolphin) for all of this.
An alternative is Uncle Punch Training Mode 3.0. In the Training Lab menu, under General enable “Input Display”, and under Info Display enable “System LStick”, “System CStick”, and “System Trigger” as the first three rows.
# Activating the Analog Sticks - B
* After plugging in the controller, press B to activate the analog sticks.
* If you are playing using Dolphin/Slippi, YOU MUST POWER CYCLE (unplug and plug back in) YOUR CONTROLLER EVERY TIME BEFORE YOU START SMASH, then press B once smash is running.
* If you are using a Mayflash adapter, you must plug in both USB connectors for the controller to register in Dolphin/Slippi.
* If you do not do this your calibration may be off and you may not get 1.0 dashes.
# Making Changes On PhobGCC
* Every time you give the PhobGCC a command, except for during the stick calibration process, the analog and c-stick will freeze pointing to the top right for 2 seconds.
* If you're in game without input visualization tools, you will see your character roll to the right to indicate this, or you'll see the menu tilt due to the C-stick.

# Safe Mode Toggle - AXY+Start
* This is necessary to be able to make any changes on the controller, otherwise it won’t let you change any settings.
* When you turn Safe Mode off (configuration is possible), the controller freezes for 2 seconds.
* When you turn Safe Mode back on (you can no longer configure), the controller freezes for 4 seconds to distinguish. You can also just unplug and plug the controller back in to ensure that you are in Safe Mode.
# Controller Reset - ABZ+Start
* **Use this if you have uploaded code to the controller for the first time, are upgrading from an older software version, or have messed up your settings in some way.**
* This will reset all the controller settings, including snapback filtering, analog delay, offsets, and calibrations.
* These default values will not be good, you **will need to calibrate and adjust snapback!**
# Analog Stick Calibration - AXY+L
[PhobGCC Analog Stick Calibration Guide - YouTube](https://www.youtube.com/watch?v=nUbpmkcleF8)
[PhobGCC Notch Calibration Guide - YouTube](https://youtu.be/hscmtzy7dqs)
* Stick calibration has two phases: measurement and notch adjustment.
* If you’ve already calibrated the stick and just want to adjust notches, you can skip the measurement phase and immediately begin notch adjustment by pressing Start at any time during the measurement phase.
## Measurement Phase
* During the measurement phase, the C-stick will alternate between center and positions along the rim. First it will have you measure the cardinal directions (right, up, left down), then the 45 degree diagonals, then it will allow you to measure one notch in each eighth segment of the circle.
* To measure, move the stick to the indicated notch, then press either L or R to go to the next step.
* When measuring, move the Analog Stick into the notch in the same way you would during gameplay. For cardinals, move straight from center. For the lower 45 degree diagonals, slide down from horizontal to mimic the shield drop motion.
* If you think you messed up a measurement (measured the wrong notch, for example), you can go back to the previous notch measurement by pressing Z while the C-Stick is centered. Press multiple times to go back more steps.
* Measuring tertiary notches between the cardinals and 45 degree notches is optional. If you don’t have a notch where the C-stick is indicating, simply leave the Analog Stick centered.
## Notch Adjustment Phase
* During the notch adjustment phase, the C-stick will indicate along the rim which notch is currently being adjusted. Only notches that were measured may be adjusted. Any notches that were not measured will be automatically skipped.
* The C-stick’s displayed value will be exactly the notch position that was measured during the measurement phase.
* If the Analog Stick was uncalibrated and outputting gibberish values before, it should now be behaving normally. It gives you a live preview of how the stick will behave based on the current notch adjustment settings.
* To adjust the notch that the C-Stick is pointing towards, press X to shift the notch clockwise and Y to shift the notch counterclockwise. Make sure you check how your notches behave as the stick enters from different directions.
* Reset the current back to the originally measured position by pressing B.
* When you’re done adjusting the current notch, press either L or R to go to the next notch. Press Z to go back to the previous notch, but you cannot go back to the measurement phase.
* When the C-stick’s output returns to center (and you can move it), your stick is now calibrated.
# C-Stick Calibration - AXY+R
This process is exactly like Analog Stick Calibration, but instead, the Analog Stick moves to show you how to move the C-Stick.
# Analog Stick Snapback Adjustment - LX/LY + Du/Dd
The Analog Stick Snapback Filter adjustment doesn’t affect responsiveness of the stick when moving away from the center. Increasing the value of this filter only makes it return to center more slowly.
* Press L + Your Axis (X/Y) + To increase or decrease strength (D-pad Up/D-pad Down)
* Example: LX+Du suppresses X-axis snapback more, LY+Dd suppresses Y-axis snapback less.
* The scale goes from 0-6, where newer sticks need a setting of 0-1 on each axis while worn ones need 2-3. 3+ is for special situations such as metal stick caps or lighter spring weights.
* Press L+Start+D-pad Down to see the current values on each axis of the Analog Stick.
# Analog Stick Axis Delay Adjustment
The Analog Stick Axis Delay is just a simple low-pass filter similar to a capacitor on a vanilla Gamecube controller. Increasing this setting slightly reduces responsiveness.
* Press L + (A/B) + To increase or decrease (D-pad Up/D-pad Down)
* A corresponds to the X axis, B corresponds to the Y axis.
* Example: LA+Du increases the X-axis Delay, LB+Dd decreases the Y-axis delay.
* The scale goes from 0-9.
* Single-Motion Ledgedashing: ~5 on X-axis and 0 on Y-axis
* Press L+Start+Dpad Down to see the current values on each axis of the C-stick.
# C-Stick Snapback Adjustment
The C-Stick Snapback Filter is actually a low-pass filter similar to the Analog Stick Axis Delay that has dual purposes, for reducing the chance of getting the wrong move and for suppressing snapback.
* Press R + Your Axis (X/Y) + To increase or decrease (D-pad Up/D-pad Down)
* Example: RX+Du is increasing the X-axis Snapback, RY+Dd is decreasing the Y-axis snapback.
* The scale goes from 0-9.
* To reduce the chance of getting the wrong move, increase the value on the axis that you don’t want, and decrease the value on the axis you do want.
* To suppress snapback on an axis, use a somewhat high value here (start with 7).
* Press R+Start+D-pad Down to see the current values on each axis of the Analog Stick.
# C-Stick Offset
* Press R + (A/B) + To increase or decrease (D-pad Up/D-pad Down)
* A corresponds to the X-axis, B corresponds to the Y-axis.
* Example: LA+Du is increasing the C-stick X Offset, LB+Dd is decreasing the C-stick Y Offset.
* This shifts the global coordinate C-stick coordinate, not delay. This is for hitting downward angled forward smashes, for example.
* Press R+Start+D-pad Down to see the current values on each axis of the C-stick.
# Z-Jump
* Press XZ+Start to swap X and Z. This will reset Y if previously swapped.
* Press YZ+Start to swap Y and Z. This will reset X if previously swapped.
* Press AXY+Z to reset to the default.
# Analog Trigger Modes
* Press ZL+Start to cycle through the trigger modes for L-trigger.
* Press ZR+Start to cycle through the trigger modes for R-trigger.
* There are 3 trigger modes:
* Mode 1: Standard behavior with the analog slider active and a digital press at the bottom of the travel. Smashscope will show red bars and then turn blue on digital press
* Mode 2: Digital-only, where the analog slider is disabled. Smashscope will show nothing.
* Mode 3: Analog-only, where the digital press is disabled. You will still get LRA+Start in this mode. Smashscope will show only red bars.

This work is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-sa/4.0/).
================================================
FILE: For_Users/Phob_Calibration_Guide_v0.21.md
================================================
**THIS IS LEGACY FIRMWARE! PLEASE UPDATE TO THE [LATEST!](/For_Users/Phob_Calibration_Guide_v0.28.md)**
**NOTE: This is for firmware version 0.21.**
For Version 0.20, use [this document](/For_Users/Phob_Calibration_Guide_v0.20.md).
For later development versions of the software that have not yet been released, search for “Current Commands List” in the PhobGCC.ino file to see the commands for that version as they may have changed.
**NOTE 2: The controller starts in safe mode! To make any changes you must disable it first!**
I strongly recommend using Smashscope (either on a Wii or Dolphin) for all of this.
An alternative is Uncle Punch Training Mode 3.0. In the Training Lab menu, under General enable “Input Display”, and under Info Display enable “System LStick”, “System CStick”, and “System Trigger” as the first three rows.
# Initial Setup
* The first time you boot the PhobGCC, the sticks will not move at all. This is normal.
* First, use AXY+Start to toggle off Safe Mode.
* Next, use ABZ+Start to hard reset the controller.
* Unplug and replug the controller.
* If using Dolphin, restart the game (Smashscope or Uncle Punch).
* Toggle off Safe Mode (AXY+Start).
* Calibrate the left analog stick (AXY+L, follow procedure below).
* Unplug and replug the controller.
* Toggle off Safe Mode (AXY+Start).
* Calibrate the C-stick (AXY+R, follow procedure below).
If you don't unplug and replug the controller between the first time calibrating each stick, the notch adjustment phase will be buggy for the second stick calibrated.
We're not quite sure why.
# Activating the Analog Sticks - B
* After plugging in the controller, press B to activate the analog sticks.
* If you are playing using Dolphin/Slippi, YOU MUST POWER CYCLE (unplug and plug back in) YOUR CONTROLLER EVERY TIME BEFORE YOU START SMASH, then press B once smash is running.
* If you are using a Mayflash adapter, you must plug in both USB connectors for the controller to register in Dolphin/Slippi.
* If you do not do this your calibration may be off and you may not get 1.0 dashes.
# Making Changes On PhobGCC
* Every time you give the PhobGCC a command, except for during the stick calibration process, the analog and c-stick will freeze pointing to the top right for 2 seconds.
* If you're in game without input visualization tools, you will see your character roll to the right to indicate this, or you'll see the menu tilt due to the C-stick.

# Safe Mode Toggle - AXY+Start
* This is necessary to be able to make any changes on the controller, otherwise it won’t let you change any settings.
* Even if you haven't pressed B, this will wake up the sticks.
* When you turn Safe Mode off (configuration is possible), the controller freezes for 2 seconds.
* When you turn Safe Mode back on (you can no longer configure), the controller freezes for 4 seconds to distinguish. You can also just unplug and plug the controller back in to ensure that you are in Safe Mode.
# Controller Reset - ABZ+Start
* **Use this if you have uploaded code to the controller for the first time, are upgrading from an older software version, or have messed up your settings in some way.**
* **You need to turn off Safe Mode in order to reset.**
* This will reset all the controller settings, including snapback filtering, analog delay, offsets, and calibrations.
* These default values will not be good, you **will need to calibrate and adjust snapback!**
# Rumble Configuration - XY + Du/Dd
* Rumble is only available on boards version 1.2 or later. This command will do nothing for earlier boards.
* Press XY + D-pad Up/D-pad Down to increase or decrease the rumble strength.
* There are settings from 0-7.
* 5 is roughly equivalent to an OEM controller's rumble.
* 0 turns off rumble entirely.
* Press BXY (without pressing A) to show the current rumble setting on the C-stick.
# Analog Stick Calibration - AXY+L
[PhobGCC Analog Stick Calibration Guide - YouTube](https://www.youtube.com/watch?v=nUbpmkcleF8)
[PhobGCC Notch Calibration Guide - YouTube](https://youtu.be/hscmtzy7dqs)
* Stick calibration has two phases: measurement and notch adjustment.
* If you’ve already calibrated the stick and just want to adjust notches, you can skip the measurement phase and immediately begin notch adjustment by pressing Start at any time during the measurement phase.
## Measurement Phase
* During the measurement phase, the C-stick will alternate between center and positions along the rim. First it will have you measure the cardinal directions (right, up, left down), then the 45 degree diagonals, then it will allow you to measure one notch in each eighth segment of the circle.
* To measure, move the stick to the indicated notch, then press either L or R to go to the next step.
* When measuring, move the Analog Stick into the notch in the same way you would during gameplay. For cardinals, move straight from center. For the lower 45 degree diagonals, slide down from horizontal to mimic the shield drop motion.
* If you think you messed up a measurement (measured the wrong notch, for example), you can go back to the previous notch measurement by pressing Z while the C-Stick is centered. Press multiple times to go back more steps.
* Measuring tertiary notches between the cardinals and 45 degree notches is optional. If you don’t have a notch where the C-stick is indicating, simply leave the Analog Stick centered.
## Notch Adjustment Phase
* During the notch adjustment phase, the C-stick will indicate along the rim which notch is currently being adjusted. Only notches that were measured may be adjusted. Any notches that were not measured will be automatically skipped.
* The C-stick’s displayed value will be exactly the notch position that was measured during the measurement phase.
* If the Analog Stick was uncalibrated and outputting gibberish values before, it should now be behaving normally. It gives you a live preview of how the stick will behave based on the current notch adjustment settings.
* To adjust the notch that the C-Stick is pointing towards, press X to shift the notch clockwise and Y to shift the notch counterclockwise. Make sure you check how your notches behave as the stick enters from different directions.
* Reset the current back to the originally measured position by pressing B.
* When you’re done adjusting the current notch, press either L or R to go to the next notch. Press Z to go back to the previous notch, but you cannot go back to the measurement phase.
* When the C-stick’s output returns to center (and you can move it), your stick is now calibrated.
# C-Stick Calibration - AXY+R
This process is exactly like Analog Stick Calibration, but instead, the Analog Stick moves to show you how to move the C-Stick.
# Analog Stick Snapback Adjustment - LX/LY + Du/Dd
The Analog Stick Snapback Filter adjustment doesn’t affect responsiveness of the stick when moving away from the center. Increasing the value of this filter only makes it return to center more slowly.
* Press L + Your Axis (X/Y) + To increase or decrease strength (D-pad Up/D-pad Down)
* Example: LX+Du suppresses X-axis snapback more, LY+Dd suppresses Y-axis snapback less.
* The scale goes from 0-6, where newer sticks need a setting of 0-1 on each axis while worn ones need 2-3. 3+ is for special situations such as metal stick caps or lighter spring weights.
* Press L+Start+D-pad Down to see the current values on each axis of the Analog Stick.
# Analog Stick Axis Delay Adjustment
The Analog Stick Axis Delay is just a simple low-pass filter similar to a capacitor on a vanilla Gamecube controller. Increasing this setting slightly reduces responsiveness.
* Press L + (A/B) + To increase or decrease (D-pad Up/D-pad Down)
* A corresponds to the X axis, B corresponds to the Y axis.
* Example: LA+Du increases the X-axis Delay, LB+Dd decreases the Y-axis delay.
* The scale goes from 0-9.
* Single-Motion Ledgedashing: ~5 on X-axis and 0 on Y-axis
* Press L+Start+Dpad Down to see the current values on each axis of the C-stick.
# C-Stick Snapback Adjustment
The C-Stick Snapback Filter is actually a low-pass filter similar to the Analog Stick Axis Delay that has dual purposes, for reducing the chance of getting the wrong move and for suppressing snapback.
* Press R + Your Axis (X/Y) + To increase or decrease (D-pad Up/D-pad Down)
* Example: RX+Du is increasing the X-axis Snapback, RY+Dd is decreasing the Y-axis snapback.
* The scale goes from 0-9.
* To reduce the chance of getting the wrong move, increase the value on the axis that you don’t want, and decrease the value on the axis you do want.
* To suppress snapback on an axis, use a somewhat high value here (start with 7).
* Press R+Start+D-pad Down to see the current values on each axis of the Analog Stick.
# C-Stick Offset
* Press R + (A/B) + To increase or decrease (D-pad Up/D-pad Down)
* A corresponds to the X-axis, B corresponds to the Y-axis.
* Example: LA+Du is increasing the C-stick X Offset, LB+Dd is decreasing the C-stick Y Offset.
* This shifts the global coordinate C-stick coordinate, not delay. This is for hitting downward angled forward smashes, for example.
* Press R+Start+D-pad Down to see the current values on each axis of the C-stick.
# Z-Jump
* Press XZ+Start to swap X and Z. This will reset Y if previously swapped.
* Press YZ+Start to swap Y and Z. This will reset X if previously swapped.
* Press AXY+Z to reset to the default.
# Analog Trigger Modes
* Press ZL+Start to cycle through the trigger modes for L-trigger.
* Press ZR+Start to cycle through the trigger modes for R-trigger.
* There are 6 trigger modes:
* Mode 1: Standard behavior with the analog slider active and a digital press at the bottom of the travel. Smashscope will show red bars and then turn blue on digital press
* Mode 2: Digital-only, where the analog slider is disabled. Smashscope will show nothing.
* Mode 3: Analog-only, where the digital press is disabled. You will still get LRA+Start in this mode. Smashscope will show only red bars.
* Mode 4: Trigger-Plug Emulation, where the analog slider will only go up to the user-defined max and then allow you to input a digital value.
* Mode 5: Analog Value At Digital, where the analog slider is disabled and the digital press will result in a user-defined analog value.
* Mode 6: Analog and Digital Value at Digital, where the analog slider is disabled and the digital press will result in a user-defined analog value and a digital input.
# Analog Trigger Value Adjustment - ZL/ZR + Du/Dd
* This shifts the user-defined limit for Analog Trigger Modes 4-6.
* Press Z + your trigger (L/R) + D-pad Up to increase or D-pad Down to decrease.
* The possible range of values goes from 49 to 227, with 49 being equivalent to Z-lightshield in Melee, the largest legal value.
* Melee treats all values 140 and above as the strongest analog shield.
* Ultimate only shields when the analog value is 79 or above.
* The values are displayed on the C-stick, with the X-axis corresponding to L and the Y-axis corresponding to R.
* Once you cross above 100, the corresponding Analog stick axis will display 100 and the remainder of the value will be shown on the C-stick.
* If you configure in Uncle Punch or 20XX, the C-stick might not reflect the actual value when the displayed coordinate is outside the Melee input circle. Confirm your settings using Smashscope or by checking the actual resulting trigger value.

This work is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-sa/4.0/).
================================================
FILE: For_Users/Phob_Calibration_Guide_v0.22.md
================================================
**THIS IS LEGACY FIRMWARE! PLEASE UPDATE TO THE [LATEST!](/For_Users/Phob_Calibration_Guide_v0.28.md)**
**NOTE: This is for firmware version 0.22.**
For Version 0.21, use [this document](/For_Users/Phob_Calibration_Guide_v0.21.md).
For later development versions of the software that have not yet been released, search for “Current Commands List” in the PhobGCC.ino file to see the commands for that version as they may have changed.
**NOTE 2: The controller starts in safe mode! To make any changes you must disable it first!**
I strongly recommend using Smashscope (either on a Wii or Dolphin) for all of this.
An alternative is Uncle Punch Training Mode 3.0. In the Training Lab menu, under General enable “Input Display”, and under Info Display enable “System LStick”, “System CStick”, and “System Trigger” as the first three rows.
# Initial Setup
* The first time you boot the PhobGCC, the sticks will not move at all. This is normal.
* First, use AXY+Start to toggle off Safe Mode.
* Next, use ABZ+Start to hard reset the controller.
* Unplug and replug the controller.
* If using Dolphin, restart the game (Smashscope or Uncle Punch).
* Toggle off Safe Mode (AXY+Start).
* Calibrate the left analog stick (AXY+L, follow procedure below).
* Unplug and replug the controller.
* Toggle off Safe Mode (AXY+Start).
* Calibrate the C-Stick (AXY+R, follow procedure below).
If you don't unplug and replug the controller between the first time calibrating each stick, the notch adjustment phase will be buggy for the second stick calibrated.
We're not quite sure why.
# Activating the Analog Sticks - B
* After plugging in the controller, press B to activate the analog sticks.
* If you are playing using Dolphin/Slippi, YOU MUST POWER CYCLE (unplug and plug back in) YOUR CONTROLLER EVERY TIME BEFORE YOU START SMASH, then press B once smash is running.
* If you are using a Mayflash adapter, you must plug in both USB connectors for the controller to register in Dolphin/Slippi.
* If you do not do this your calibration may be off and you may not get 1.0 dashes.
# Making Changes On PhobGCC
* Every time you give the PhobGCC a command, except for during the stick calibration process, the analog and c-stick will freeze pointing to the top right for 2 seconds.
* If you're in game without input visualization tools, you will see your character roll to the right to indicate this, or you'll see the menu tilt due to the C-Stick.

# Safe Mode Toggle - AXY+Start
* This is necessary to be able to make any changes on the controller, otherwise it won’t let you change any settings.
* Even if you haven't pressed B, this will wake up the sticks.
* When you turn Safe Mode off (configuration is possible), the controller freezes for 2 seconds.
* When you turn Safe Mode back on (you can no longer configure), the controller freezes for 4 seconds to distinguish. You can also just unplug and plug the controller back in to ensure that you are in Safe Mode.
# Controller Reset - ABZ+Start
* **Use this if you have uploaded code to the controller for the first time, are upgrading from an older software version, or have messed up your settings in some way.**
* **You need to turn off Safe Mode in order to reset.**
* This will reset all the controller settings, including snapback filtering, analog delay, offsets, and calibrations.
* These default values will not be good, you **will need to calibrate and adjust snapback!**
# Rumble Configuration - XY + Du/Dd
* Rumble is only available on boards version 1.2 or later. This command will do nothing for earlier boards.
* Press XY + D-pad Up/D-pad Down to increase or decrease the rumble strength.
* There are settings from 0-7.
* 5 is roughly equivalent to an OEM controller's rumble.
* 0 turns off rumble entirely.
* Press BXY (without pressing A) to show the current rumble setting on the C-Stick.
# Analog Stick Calibration - AXY+L
[PhobGCC Analog Stick Calibration Guide - YouTube](https://www.youtube.com/watch?v=nUbpmkcleF8)
[PhobGCC Notch Calibration Guide - YouTube](https://youtu.be/hscmtzy7dqs)
* Stick calibration has two phases: measurement and notch adjustment.
* If you’ve already calibrated the stick and just want to adjust notches, you can skip the measurement phase and immediately begin notch adjustment by pressing Start at any time during the measurement phase.
## Measurement Phase
* During the measurement phase, the C-Stick will alternate between center and positions along the rim. First it will have you measure the cardinal directions (right, up, left down), then the 45 degree diagonals, then it will allow you to measure one notch in each eighth segment of the circle.
* To measure, move the stick to the indicated notch, then press either L or R to go to the next step.
* When measuring, move the Analog Stick into the notch in the same way you would during gameplay. For cardinals, move straight from center. For the lower 45 degree diagonals, slide down from horizontal to mimic the shield drop motion.
* If you think you messed up a measurement (measured the wrong notch, for example), you can go back to the previous notch measurement by pressing Z while the C-Stick is centered. Press multiple times to go back more steps.
* Measuring tertiary notches between the cardinals and 45 degree notches is optional. If you don’t have a notch where the C-Stick is indicating, simply leave the Analog Stick centered.
## Notch Adjustment Phase
* During the notch adjustment phase, the C-Stick will indicate along the rim which notch is currently being adjusted. Only notches that were measured may be adjusted. Any notches that were not measured will be automatically skipped.
* The C-Stick’s displayed value will be exactly the notch position that was measured during the measurement phase.
* If the Analog Stick was uncalibrated and outputting gibberish values before, it should now be behaving normally. It gives you a live preview of how the stick will behave based on the current notch adjustment settings.
* To adjust the notch that the C-Stick is pointing towards, press X to shift the notch clockwise and Y to shift the notch counterclockwise. Make sure you check how your notches behave as the stick enters from different directions.
* Reset the current back to the originally measured position by pressing B.
* When you’re done adjusting the current notch, press either L or R to go to the next notch. Press Z to go back to the previous notch, but you cannot go back to the measurement phase.
* When the C-Stick’s output returns to center (and you can move it), your stick is now calibrated.
# C-Stick Calibration - AXY+R
This process is exactly like Analog Stick Calibration, but instead, the Analog Stick moves to show you how to move the C-Stick.
# Analog Stick Smart Snapback Adjustment - LX/LY + Du/Dd
Increasing the Analog Stick Smart Snapback Filter adjustment doesn’t hurt responsiveness of the stick when moving away from the center. Increasing the value of this filter only makes it return to center more slowly.
* Press L + Your Axis (X/Y) + To increase or decrease strength (D-pad Up/D-pad Down)
* Example: LX+Du suppresses X-axis snapback more, LY+Dd suppresses Y-axis snapback less.
* When you change this setting, the current snapback filter settings are shown as the numerical coordinates of the C-Stick.
* The scale goes from 0-7, and defaults to 1.
* 0 completely disables the Smart Snapback Filter. This removes the rise time improvements, hurting dashdancing on the X axis, and you will have snapback.
* 1-7 is equivalent to 0-6 on v0.21.
* Sticks usually need a setting of 1-4. 5+ is for special situations such as metal stick caps or lighter spring weights.
* Press L+Start+D-pad Down to see the current snapback filter values on each axis of the Analog Stick.
* The C-Stick will show the axis smoothing values.
# Analog Stick Axis Smoothing Adjustment
The Analog Stick Axis Smoothing is just a simple low-pass filter similar to a capacitor on a vanilla Gamecube controller. Increasing this setting slightly reduces responsiveness. If you have the Smart Snapback Filter disabled, you can use this to suppress snapback.
* Press L + (A/B) + To increase or decrease (D-pad Up/D-pad Down)
* A corresponds to the X axis, B corresponds to the Y axis.
* Example: LA+Du increases the X-axis Delay, LB+Dd decreases the Y-axis delay.
* When you change this setting, the current axis smoothing settings are shown as the numerical coordinates of the C-Stick.
* The scale goes from 0-9.
* Single-Motion Ledgedashing: ~5 on X-axis and 0 on Y-axis
* Alternatively, set the Smart Snapback adjustment on the Y-axis to 0 and set the Axis Smoothing to 0 for both X and Y-axes. This gives stronger single-motion ledgedashes but you may experience Y-axis snapback.
* Press L+Start+Dpad Down to see the current axis smoothing values on each axis of the C-Stick.
* The Analog Stick will show the snapback filter values.
# C-Stick Snapback Adjustment
The C-Stick Snapback Filter is actually a low-pass filter similar to the Analog Stick Axis Smoothing that has dual purposes, for reducing the chance of getting the wrong move and for suppressing snapback.
* Press R + Your Axis (X/Y) + To increase or decrease (D-pad Up/D-pad Down)
* Example: RX+Du is increasing the X-axis Snapback, RY+Dd is decreasing the Y-axis snapback.
* When you change this setting, the current snapback filter settings are shown as the numerical coordinates of the C-Stick.
* The scale goes from 0-9.
* To reduce the chance of getting the wrong move, increase the value on the axis that you don’t want, and decrease the value on the axis you do want.
* To suppress snapback on an axis, use a somewhat high value here (start with 7).
* Press R+Start+D-pad Down to see the current snapback filter values on each axis of the Analog Stick.
* The C-Stick will show the current offset values.
# C-Stick Offset
* Press R + (A/B) + To increase or decrease (D-pad Up/D-pad Down)
* A corresponds to the X-axis, B corresponds to the Y-axis.
* Example: LA+Du is increasing the C-Stick X Offset, LB+Dd is decreasing the C-Stick Y Offset.
* When you change this setting, the current offset settings are shown as the numerical coordinates of the C-Stick.
* This shifts the global coordinate C-Stick coordinate, not delay. This is for hitting downward angled forward smashes, for example.
* Press R+Start+D-pad Down to see the current offset values on each axis of the C-Stick.
* The Analog Stick will show the current snapback filter values.
# Z-Jump
* Press XZ+Start to swap X and Z. This will reset Y if previously swapped.
* Press YZ+Start to swap Y and Z. This will reset X if previously swapped.
* Press AXY+Z to reset to the default.
# Analog Trigger Modes
* Press ZL+Start to cycle through the trigger modes for L-trigger.
* Press ZR+Start to cycle through the trigger modes for R-trigger.
* There are 6 trigger modes:
* Mode 1: Standard behavior with the analog slider active and a digital press at the bottom of the travel. Smashscope will show red bars and then turn blue on digital press
* Mode 2: Digital-only, where the analog slider is disabled. Smashscope will show nothing.
* Mode 3: Analog-only, where the digital press is disabled. You will still get LRA+Start in this mode. Smashscope will show only red bars.
* Mode 4: Trigger-Plug Emulation, where the analog slider will only go up to the user-defined max and then allow you to input a digital value.
* Mode 5: Analog Value At Digital, where the analog slider is disabled and the digital press will result in a user-defined analog value.
* Mode 6: Analog and Digital Value at Digital, where the analog slider is disabled and the digital press will result in a user-defined analog value and a digital input.
# Analog Trigger Value Adjustment - ZL/ZR + Du/Dd
* This shifts the user-defined limit for Analog Trigger Modes 4-6.
* Press Z + your trigger (L/R) + D-pad Up to increase or D-pad Down to decrease.
* The possible range of values goes from 49 to 227, with 49 being equivalent to Z-lightshield in Melee, the largest legal value.
* Melee treats all values 140 and above as the strongest analog shield.
* Ultimate only shields when the analog value is 79 or above.
* The values are displayed on the C-Stick, with the X-axis corresponding to L and the Y-axis corresponding to R.
* Once you cross above 100, the corresponding Analog stick axis will display 100 and the remainder of the value will be shown on the C-Stick.
* If you configure in Uncle Punch or 20XX, the C-Stick might not reflect the actual value when the displayed coordinate is outside the Melee input circle. Confirm your settings using Smashscope or by checking the actual resulting trigger value.

This work is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-sa/4.0/).
================================================
FILE: For_Users/Phob_Calibration_Guide_v0.23.md
================================================
**THIS IS LEGACY FIRMWARE! PLEASE UPDATE TO THE [LATEST!](/For_Users/Phob_Calibration_Guide_v0.28.md)**
**NOTE: This is for firmware version 0.23.**
For Version 0.22, use [this document](/For_Users/Phob_Calibration_Guide_v0.22.md).
For later development versions of the software that have not yet been released, search for “Current Commands List” in the PhobGCC.ino file to see the commands for that version as they may have changed.
**NOTE 2: The controller starts in safe mode! To make any changes you must disable it first!**
I strongly recommend using Smashscope (either on a Wii or Dolphin) for all of this.
An alternative is Uncle Punch Training Mode 3.0. In the Training Lab menu, under General enable “Input Display”, and under Info Display enable “System LStick”, “System CStick”, and “System Trigger” as the first three rows.
# Initial Setup
**This is only necessary the the first time the controller is set up after it is made.**
You do not need to do this otherwise.
* The first time you boot the PhobGCC, the sticks will not move at all. This is normal.
* First, use AXY+Start to toggle off Safe Mode.
* Next, use ABZ+Start to hard reset the controller.
* Unplug and replug the controller.
* If using Dolphin, restart the game (Smashscope or Uncle Punch).
* Toggle off Safe Mode (AXY+Start). Both sticks should be wonky right now.
* Calibrate the left analog stick (AXY+L, follow procedure below). The left stick should behave normally now.
* Unplug and replug the controller.
* Toggle off Safe Mode (AXY+Start).
* Calibrate the C-Stick (AXY+R, follow procedure below). The right stick should behave normally now.
If you don't unplug and replug the controller between the first time calibrating each stick, the notch adjustment phase will be buggy for the second stick calibrated.
We're not quite sure why.
# Activating the Analog Sticks - B
* After plugging in the controller, press B to activate the analog sticks.
* If you are playing using Dolphin/Slippi, YOU MUST POWER CYCLE (unplug and plug back in) YOUR CONTROLLER EVERY TIME BEFORE YOU START SMASH, then press B once smash is running.
* If you are using a Mayflash adapter, you must plug in both USB connectors for the controller to register in Dolphin/Slippi.
* If you do not do this your calibration may be off and you may not get 1.0 dashes.
# Making Changes On PhobGCC
* Every time you give the PhobGCC a command, except for during the stick calibration process, the Analog Stick and C-Stick will freeze pointing to the top right for 2 seconds.
* If you're in game without input visualization tools, you will see your character roll to the right to indicate this, or you'll see the menu tilt due to the C-Stick.

# Safe Mode Toggle - AXY+Start
* To turn off Safe Mode, you have to hold the key combination for about 1 second, to prevent accidental activation.
* Turning Safe Mode back on has no delay.
* This is necessary to be able to make any changes on the controller, otherwise it won’t let you change any settings.
* Even if you haven't pressed B, this will wake up the sticks.
* When you turn Safe Mode off (configuration is possible), the controller freezes for 2 seconds.
* When you turn Safe Mode back on (you can no longer configure), the controller freezes for 4 seconds to distinguish. You can also just unplug and plug the controller back in to ensure that you are in Safe Mode.
# Controller Reset - ABZ+Start
* **Use this if you have uploaded code to the controller for the first time, are upgrading from an older software version, or have messed up your settings in some way.**
* **You need to turn off Safe Mode in order to reset.**
* This will reset all the controller settings, including snapback filtering, analog delay, offsets, and calibrations.
* These default values will not be good, you **will need to calibrate and adjust snapback!**
* Otherwise the sticks will be wonky.
# Rumble Configuration - XY + Du/Dd
* Rumble is only available on boards version 1.2 or later. This command will do nothing for earlier boards.
* Press XY + D-pad Up/D-pad Down to increase or decrease the rumble strength.
* There are settings from 0-7.
* 5 is roughly equivalent to an OEM controller's rumble.
* 0 turns off rumble entirely.
* Press BXY (without pressing A) to show the current rumble setting on the C-Stick.
# Analog Stick Calibration - AXY+L
[PhobGCC Analog Stick Calibration Guide - YouTube](https://www.youtube.com/watch?v=nUbpmkcleF8)
[PhobGCC Notch Calibration Guide - YouTube](https://youtu.be/hscmtzy7dqs)
* Stick calibration has two phases: measurement and notch adjustment.
* If you’ve already calibrated the stick and just want to adjust notches, you can skip the measurement phase and immediately begin notch adjustment by pressing Start at any time during the measurement phase.
## Measurement Phase
* During the measurement phase, if the stick started off uncalibrated (for example, if you just hard reset the controller, or if you replaced the stickbox or magnets), then the left stick will still behave wonky. This is normal.
* The C-Stick will alternate between center and positions along the rim. First it will have you measure the cardinal directions (right, up, left down), then the 45 degree diagonals, then it will allow you to measure one notch in each eighth segment of the circle.
* If the C-stick is not doing this, then you have initialized the controller incorrectly.
* To measure, move the stick to the indicated notch, then press either L or R to go to the next step.
* When measuring, move the Analog Stick into the notch in the same way you would during gameplay. For cardinals, move straight from center. For the lower 45 degree diagonals, slide down from horizontal to mimic the shield drop motion.
* If you think you messed up a measurement (measured the wrong notch, for example), you can go back to the previous notch measurement by pressing Z while the C-Stick is centered. Press multiple times to go back more steps.
* Measuring tertiary notches between the cardinals and 45 degree notches is optional. If you don’t have a notch where the C-Stick is indicating, simply leave the Analog Stick centered.
## Notch Adjustment Phase
* During the notch adjustment phase, the C-Stick will indicate along the rim which notch is currently being adjusted. Only notches that were measured may be adjusted. Any notches that were not measured will be automatically skipped.
* The C-Stick’s displayed value will be exactly the notch position that was measured during the measurement phase.
* If the Analog Stick was uncalibrated and outputting gibberish values before, it should now be behaving normally. It gives you a live preview of how the stick will behave based on the current notch adjustment settings.
* To adjust the notch that the C-Stick is pointing towards, press X to shift the notch clockwise and Y to shift the notch counterclockwise. Make sure you check how your notches behave as the stick enters from different directions.
* Reset the current back to the originally measured position by pressing B.
* When you’re done adjusting the current notch, press either L or R to go to the next notch. Press Z to go back to the previous notch, but you cannot go back to the measurement phase.
* When the C-Stick’s output returns to center (and you can move it), your stick is now calibrated.
# C-Stick Calibration - AXY+R
This process is exactly like Analog Stick Calibration, but instead, the Analog Stick moves to show you how to move the C-Stick.
# Analog Stick Smart Snapback Adjustment - LX/LY + Du/Dd
Increasing the Analog Stick Smart Snapback Filter adjustment doesn’t hurt responsiveness of the stick when moving away from the center. Increasing the value of this filter only makes it return to center more slowly.
* Press L + Your Axis (X/Y) + To increase or decrease strength (D-pad Up/D-pad Down)
* Example: LX+Du suppresses X-axis snapback more, LY+Dd suppresses Y-axis snapback less.
* When you change this setting, the current snapback filter settings are shown as the numerical coordinates of the C-Stick.
* The scale goes from 0-7, and defaults to 1.
* 0 completely disables the Smart Snapback Filter. This removes the rise time improvements, hurting dashdancing on the X axis, and you will have snapback.
* 1-7 is equivalent to 0-6 on v0.21.
* Sticks usually need a setting of 1-4. 5+ is for special situations such as metal stick caps or lighter spring weights.
* Press L+Start+D-pad Down to see the current snapback filter values on each axis of the Analog Stick.
* The C-Stick will show the axis smoothing values.
# Analog Stick Axis Smoothing Adjustment
The Analog Stick Axis Smoothing is just a simple low-pass filter similar to a capacitor on a vanilla Gamecube controller. Increasing this setting slightly reduces responsiveness. If you have the Smart Snapback Filter disabled, you can use this to suppress snapback.
* Press L + (A/B) + To increase or decrease (D-pad Up/D-pad Down)
* A corresponds to the X axis, B corresponds to the Y axis.
* Example: LA+Du increases the X-axis Delay, LB+Dd decreases the Y-axis delay.
* When you change this setting, the current axis smoothing settings are shown as the numerical coordinates of the C-Stick.
* The scale goes from 0-9.
* Single-Motion Ledgedashing: ~5 on X-axis and 0 on Y-axis
* Alternatively, set the Smart Snapback adjustment on the Y-axis to 0 and set the Axis Smoothing to 0 for both X and Y-axes. This gives stronger single-motion ledgedashes but you may experience Y-axis snapback.
* Press L+Start+Dpad Down to see the current axis smoothing values on each axis of the C-Stick.
* The Analog Stick will show the snapback filter values.
# C-Stick Snapback Adjustment
The C-Stick Snapback Filter is actually a low-pass filter similar to the Analog Stick Axis Smoothing that has dual purposes, for reducing the chance of getting the wrong move and for suppressing snapback.
* Press R + Your Axis (X/Y) + To increase or decrease (D-pad Up/D-pad Down)
* Example: RX+Du is increasing the X-axis Snapback, RY+Dd is decreasing the Y-axis snapback.
* When you change this setting, the current snapback filter settings are shown as the numerical coordinates of the C-Stick.
* The scale goes from 0-9.
* To reduce the chance of getting the wrong move, increase the value on the axis that you don’t want, and decrease the value on the axis you do want.
* To suppress snapback on an axis, use a somewhat high value here (start with 7).
* Press R+Start+D-pad Down to see the current snapback filter values on each axis of the Analog Stick.
* The C-Stick will show the current offset values.
# C-Stick Offset
* Press R + (A/B) + To increase or decrease (D-pad Up/D-pad Down)
* A corresponds to the X-axis, B corresponds to the Y-axis.
* Example: LA+Du is increasing the C-Stick X Offset, LB+Dd is decreasing the C-Stick Y Offset.
* When you change this setting, the current offset settings are shown as the numerical coordinates of the C-Stick.
* This shifts the global coordinate C-Stick coordinate, not delay. This is for hitting downward angled forward smashes, for example.
* Press R+Start+D-pad Down to see the current offset values on each axis of t
gitextract_vvmcfvie/ ├── For_Makers/ │ ├── 1.X Trigger Guards.STL │ ├── BibbEZ/ │ │ └── BibbEZ_Guide.md │ ├── Board_Debugging_2.0.md │ ├── Board_Fixes.md │ ├── Board_Level_Debugging_1.2.md │ ├── Build_Guide_1.2.md │ ├── Build_Guide_2.0.md │ ├── Phob2_Elecrow_Ordering_Guide.md │ ├── Phob2_Elecrow_Ordering_Guide_Old.md │ ├── Phob2_JLCPCB_Ordering_Guide.md │ ├── Phob2_Ordering_Guide.md │ └── Phob_Ordering_Guide.md ├── For_Users/ │ ├── Extras_Guides/ │ │ ├── ESS_Adapter.md │ │ └── Phob_Extras_Guide.md │ ├── Phob2_Programming_Guide.md │ ├── Phob_Buying_Guide.md │ ├── Phob_Calibration_Guide_Latest.md │ ├── Phob_Calibration_Guide_v0.20.md │ ├── Phob_Calibration_Guide_v0.21.md │ ├── Phob_Calibration_Guide_v0.22.md │ ├── Phob_Calibration_Guide_v0.23.md │ ├── Phob_Calibration_Guide_v0.24.md │ ├── Phob_Calibration_Guide_v0.25.md │ ├── Phob_Calibration_Guide_v0.26.md │ ├── Phob_Calibration_Guide_v0.27.md │ ├── Phob_Calibration_Guide_v0.28.md │ ├── Phob_Calibration_Guide_v0.29.md │ ├── Phob_Programming_Guide.md │ └── Phobvision_Guide_Latest.md ├── General_Info/ │ ├── Hall_Effect_Sensors.md │ ├── Notch_Remapping.md │ ├── Signal_Linearization.md │ └── Snapback_Filter.md ├── LEGACY.md └── README.md
Condensed preview — 35 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (376K chars).
[
{
"path": "For_Makers/BibbEZ/BibbEZ_Guide.md",
"chars": 4644,
"preview": "# BibbEZ installation guide\n\nThis is a guide for installing the BibbEZ shell-mount mouseclick Z bracket.\n\n**\n\n**NOTE: This is"
},
{
"path": "For_Users/Phob_Calibration_Guide_v0.21.md",
"chars": 11852,
"preview": "**THIS IS LEGACY FIRMWARE! PLEASE UPDATE TO THE [LATEST!](/For_Users/Phob_Calibration_Guide_v0.28.md)**\n\n**NOTE: This is"
},
{
"path": "For_Users/Phob_Calibration_Guide_v0.22.md",
"chars": 13142,
"preview": "**THIS IS LEGACY FIRMWARE! PLEASE UPDATE TO THE [LATEST!](/For_Users/Phob_Calibration_Guide_v0.28.md)**\n\n**NOTE: This is"
},
{
"path": "For_Users/Phob_Calibration_Guide_v0.23.md",
"chars": 14493,
"preview": "**THIS IS LEGACY FIRMWARE! PLEASE UPDATE TO THE [LATEST!](/For_Users/Phob_Calibration_Guide_v0.28.md)**\n\n**NOTE: This is"
},
{
"path": "For_Users/Phob_Calibration_Guide_v0.24.md",
"chars": 16802,
"preview": "**THIS IS LEGACY FIRMWARE! PLEASE UPDATE TO THE [LATEST!](/For_Users/Phob_Calibration_Guide_v0.28.md)**\n\n**NOTE: This is"
},
{
"path": "For_Users/Phob_Calibration_Guide_v0.25.md",
"chars": 16266,
"preview": "**THIS IS LEGACY FIRMWARE! PLEASE UPDATE TO THE [LATEST!](/For_Users/Phob_Calibration_Guide_v0.28.md)**\n\n**NOTE: This is"
},
{
"path": "For_Users/Phob_Calibration_Guide_v0.26.md",
"chars": 22368,
"preview": "**THIS IS LEGACY FIRMWARE! PLEASE UPDATE TO THE [LATEST!](/For_Users/Phob_Calibration_Guide_v0.28.md)**\n\n**NOTE: This is"
},
{
"path": "For_Users/Phob_Calibration_Guide_v0.27.md",
"chars": 24034,
"preview": "**THIS IS LEGACY FIRMWARE! PLEASE UPDATE TO THE [LATEST!](/For_Users/Phob_Calibration_Guide_v0.28.md)**\n\n**NOTE: This is"
},
{
"path": "For_Users/Phob_Calibration_Guide_v0.28.md",
"chars": 24977,
"preview": "**NOTE: This is for firmware version 0.28.**\n\nFor Version 0.27, use [this document](/For_Users/Phob_Calibration_Guide_v0"
},
{
"path": "For_Users/Phob_Calibration_Guide_v0.29.md",
"chars": 30540,
"preview": "**NOTE: This is for firmware version 0.29.**\n\nFor older versions, use the appropriate calibration document [from here](."
},
{
"path": "For_Users/Phob_Programming_Guide.md",
"chars": 5058,
"preview": "# PhobGCC v1.X Programming Guide\n\nThis is a guide to programming the teensy microcontroller on PhobGCC v1.X.\n\nHere's a ["
},
{
"path": "For_Users/Phobvision_Guide_Latest.md",
"chars": 14101,
"preview": "NOTE: This is for PhobGCC 2 with firmware version 0.29.\n\n# PhobVision\n\nPhobVision is a feature specific to PhobGCC versi"
},
{
"path": "General_Info/Hall_Effect_Sensors.md",
"chars": 1507,
"preview": "Hall effect sensors work by measuring how hard moving charges get pushed/pulled by a magnetic field. Read more here: htt"
},
{
"path": "General_Info/Notch_Remapping.md",
"chars": 845,
"preview": "Notch remapping is done by dividing stick space into triangular shaped regions, then applying an affine transformation(h"
},
{
"path": "General_Info/Signal_Linearization.md",
"chars": 1521,
"preview": " The signals coming from the Hall effect sensors need to be scaled and are non-linear. In order to make them behave the "
},
{
"path": "General_Info/Snapback_Filter.md",
"chars": 4950,
"preview": "# Kalman-inspired filter for snapback\n\nFor a thorough introduction to Kalman filters, check out this website: https://ww"
},
{
"path": "LEGACY.md",
"chars": 1697,
"preview": "# Legacy Documentation\n\nThis document is to keep track of old documentation that is no longer applicable.\n\n## Controller"
},
{
"path": "README.md",
"chars": 2552,
"preview": "# PhobGCC Documentation Hub\nThis is a central location for documentation for the PhobGCC.\n\nThe PhobGCC is a replacement "
}
]
// ... and 1 more files (download for full content)
About this extraction
This page contains the full source code of the PhobGCC/PhobGCC-doc GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 35 files (358.9 KB), approximately 91.2k tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.