diff --git a/src/assembly.md b/src/assembly.md index 983a646..9662f08 100644 --- a/src/assembly.md +++ b/src/assembly.md @@ -1 +1,273 @@ -# Assembly Guide +# Hardware Assembly + +This is an illustrated guide to making a NaxGCC, using photos taken of a NaxGCC board version 1.0.0. + +> **NOTE:** Assembling a NaxGCC is conceptually very similar to assembling a Phob 2.0, therefore many sections of this guide (including images) have been taken straight from the official PhobGCC assembly guide. Note that though some images may depict a PhobGCC, the steps are still applicable to the NaxGCC. In parts where the hardware differs, newer images have been used. + + + +Though the NaxGCC is very beginner friendly, and it is possible to build a NaxGCC 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. + +[[_TOC_]] + +## 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. + +### Required Tools + +- Temperature-controlled soldering iron with a moderate size chisel tip. **DO NOT USE AN UNCONTROLLED TEMPERATURE IRON!** +- Flux-core solder, ideally no-clean flux (Sn63Pb37 melts at a lower temperature, SAC305 is nontoxic and flows better) +- No-clean rosin flux paste (not to be confused with solder paste) +- Tri-Wing screwdriver and small JIS driver set (Phillips drivers can strip screws) +- Sharp tweezers +- Solder sucker (or more sophisticated desoldering tool) +- Vise or PCB support (the alligator clip kind is not very useful) +- Multimeter for debugging +- 90%+ rubbing alcohol and cotton swabs + +### Suggested Tools + +- Anti-static mat / grounding strap +- Fume fan + +## Parts + +Some of the parts are taken from a donor Gamecube controller, while others must be sourced new. + +### New Parts + +- NaxGCC board (includes C-Stick daughter board) +- 4x magnets (recommended: 3x3mm cylindrical neodym magnets) +- 3D-printed magnet holders +- superglue +- optional 2x trigger paddles from the PhobGCC project +- optional 4x D-pad buttons +- optional 4x mouse buttons for `ABXY` (assembly not depicted) +- optional 1x or 2x mouse buttons for triggers (assembly not depicted) +- wire + +### Parts Harvested from Donor GCC + +Not counting stick caps, buttons, etc. + +- 2x stickboxes +- rumble motor (or use a cellphone rumble) +- rumble bracket (or source your own 3D-printed one) +- Z-button switch (or source your own alternative one) +- trigger paddles with attached wires (or use the ones from the PhobGCC project) +- top shell (or use a custom 3D-printed one) +- bottom shell + +## Build Process + +### GCC Part Harvesting + +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$^1$ +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 + +$^1$these are not used in the NaxGCC presently, because SSBU doesn't respond to analog trigger signals, but you may attach them anyway for future-proofing purposes + + + +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. + + + +### Magnet Mounting + +Like the PhobGCC, NaxGCC uses sensors mounted perfectly flat on the board. You will need to mount magnets on the stickboxes using 3D-printed magnet mounts in order for the sensors to read the stick positions. + +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 + +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, optionally, you may 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. Thin superglue is preferred. + +**Be _very sparing_ with superglue so you do not contaminate the stickbox!** + + + +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.** + +> **NOTE:** Ideally, the magnets should be inserted to have opposite polarity, that is to say if you were to remove the magnet mounts and hold them opposite each other, they should attract one another without attempting to flip orientation. Mounting them differently has been a source of issues in the past. + + + +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. + +### Trigger Modification + +The NaxGCC only makes use of the digital trigger paddles, as such it is highly recommended to modify the `L` & `R` triggers to include a 3D-printed stopper in order to raise their height and make them more comfortable to use. You can find the 3D-printable stopper files in the [NaxGCC-HW git repo](https://git.naxdy.org/NaxdyOrg/NaxGCC-HW). Simply print two stoppers (or have someone print them for you) and slide them into the hole at the bottom of the triggers. Be careful when reassembling the controller, as slightly depressing the triggers may cause the rubber to be pushed out. + +### Board Preparation + +The C-Stick daughter board comes attached to the main NaxGCC 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 (not a big deal, but you'll have to clean it off with isopropyl alcohol afterwards, or risk the buttons not functioning reliably). + + + +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. + + + +### Z button Switch Soldering + +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. + + + +### Trigger Potentiometer Soldering + +Currently, trigger potentiometers are not used in the NaxGCC, but you may attach them for future-proofing purposes. To do so, follow the [PhobGCC assembly guide](https://github.com/PhobGCC/PhobGCC-doc/blob/main/For_Makers/Build_Guide_2.0.md#trigger-potentiometer-soldering). + +### Trigger Paddle Soldering + +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 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. + + + +### C-Stick Cable Soldering + +The C-Stick 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. + +Cut six pieces of wire to about 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. + +Follow the same procedure as with the trigger paddles to solder the wires to the C-Stick daughter board. Note that this is the side with silkscreen around the through-holes. + + + +For these especially, if you are using individual wires, it is highly recommended 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. + + + +### Stickbox Installation + +Install the stickboxes on the motherboard and the C-Stick. + + + +You must have the magnets mounted above the 3-legged SMD Hall-Effect sensors. + +### Trigger Paddle Soldering + +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. In the image, there is already a rumble motor in the rumble bracket, but that can be left until later. The rumble bracket can be held in place using 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. + + + +### Rumble Motor Soldering + +Mount the rumble motor in the rumble bracket by inserting it into the rectangular box. Make sure that the shaft is on the side with the USB-C connector, and the motor is rotated so that the wires are on the D-pad side, close to the edge of the box. Solder the rumble motor wires to the motherboard, with the red soldered to the `+` pad and the black soldered to the `-` pad. + +### Top Shell Modification + +If you're using a 3D-printed top shell, you may skip this step. + +If you're using an OEM top shell, you will need to modify it to allow the USB cable to pass through. An easy way to do this is using your soldering iron. Simply melt away the extra plastic in the center of the shell, enough for the USB-C connector to fit through. It won't be pretty, but it'll get the job done. + +More advanced modders, feel free to use a dremel or a drill to make a cleaner hole. + +> **NOTE:** When melting or sanding, take care to wear breathing protection and work in a well-ventilated area. The fumes from melting plastic are toxic, and inhaling microplastics is not particularly good for your health either. + +> **NOTE:** It is highly recommended to only do this with a soldering iron that has exchangeable tips, as the plastic will stick to the tip and reduce its usefulness for actual soldering. Conical tips are best expended for this, since they aren't very good at making surface contact for soldering anyway. + +The end result should look something like this: + + + +The USB-C port should be easily accessible from the outside of the controller: + + + +## Completion and Next Steps + +Now your NaxGCC should be complete! + +Reassemble your controller and head on over to the [configuration guide](./configuration.md) to set up your controller to your liking. diff --git a/src/assets/asm-mobo-removed.png b/src/assets/asm-mobo-removed.png new file mode 100644 index 0000000..c93641a Binary files /dev/null and b/src/assets/asm-mobo-removed.png differ diff --git a/src/assets/asm-parts.png b/src/assets/asm-parts.png new file mode 100644 index 0000000..2442b66 Binary files /dev/null and b/src/assets/asm-parts.png differ diff --git a/src/assets/asm-stickbox-glue.png b/src/assets/asm-stickbox-glue.png new file mode 100644 index 0000000..f73f027 Binary files /dev/null and b/src/assets/asm-stickbox-glue.png differ diff --git a/src/assets/asm-stickbox-mount-glue.png b/src/assets/asm-stickbox-mount-glue.png new file mode 100644 index 0000000..dd6564a Binary files /dev/null and b/src/assets/asm-stickbox-mount-glue.png differ diff --git a/src/assets/asm-stickbox-mounts.png b/src/assets/asm-stickbox-mounts.png new file mode 100644 index 0000000..c8fd82c Binary files /dev/null and b/src/assets/asm-stickbox-mounts.png differ diff --git a/src/assets/asm-stickbox-removal.png b/src/assets/asm-stickbox-removal.png new file mode 100644 index 0000000..090bb64 Binary files /dev/null and b/src/assets/asm-stickbox-removal.png differ diff --git a/src/assets/asm-stickbox-withmagnets.png b/src/assets/asm-stickbox-withmagnets.png new file mode 100644 index 0000000..2bd74d1 Binary files /dev/null and b/src/assets/asm-stickbox-withmagnets.png differ diff --git a/src/assets/board-break.png b/src/assets/board-break.png new file mode 100644 index 0000000..2450b3c Binary files /dev/null and b/src/assets/board-break.png differ diff --git a/src/assets/board-break2.png b/src/assets/board-break2.png new file mode 100644 index 0000000..77c3daf Binary files /dev/null and b/src/assets/board-break2.png differ diff --git a/src/assets/board-break3.jpg b/src/assets/board-break3.jpg new file mode 100644 index 0000000..9080f31 Binary files /dev/null and b/src/assets/board-break3.jpg differ diff --git a/src/assets/cstick-solder.png b/src/assets/cstick-solder.png new file mode 100644 index 0000000..ce0e9d0 Binary files /dev/null and b/src/assets/cstick-solder.png differ diff --git a/src/assets/cstick-solder2.png b/src/assets/cstick-solder2.png new file mode 100644 index 0000000..5922df1 Binary files /dev/null and b/src/assets/cstick-solder2.png differ diff --git a/src/assets/cstick-solder3.png b/src/assets/cstick-solder3.png new file mode 100644 index 0000000..76105fb Binary files /dev/null and b/src/assets/cstick-solder3.png differ diff --git a/src/assets/cstick-solder4.png b/src/assets/cstick-solder4.png new file mode 100644 index 0000000..44f1c1f Binary files /dev/null and b/src/assets/cstick-solder4.png differ diff --git a/src/assets/cstick-solder5.png b/src/assets/cstick-solder5.png new file mode 100644 index 0000000..6ad903a Binary files /dev/null and b/src/assets/cstick-solder5.png differ diff --git a/src/assets/melt-topshell.jpg b/src/assets/melt-topshell.jpg new file mode 100644 index 0000000..f6d1015 Binary files /dev/null and b/src/assets/melt-topshell.jpg differ diff --git a/src/assets/naxgcc-board-irl.jpg b/src/assets/naxgcc-board-irl.jpg new file mode 100644 index 0000000..bed8aa3 Binary files /dev/null and b/src/assets/naxgcc-board-irl.jpg differ diff --git a/src/assets/omron-z.png b/src/assets/omron-z.png new file mode 100644 index 0000000..9c7e276 Binary files /dev/null and b/src/assets/omron-z.png differ diff --git a/src/assets/stickbox-installed.png b/src/assets/stickbox-installed.png new file mode 100644 index 0000000..c1e4449 Binary files /dev/null and b/src/assets/stickbox-installed.png differ diff --git a/src/assets/trigger-paddle.png b/src/assets/trigger-paddle.png new file mode 100644 index 0000000..e882597 Binary files /dev/null and b/src/assets/trigger-paddle.png differ diff --git a/src/assets/trigger-paddle2.png b/src/assets/trigger-paddle2.png new file mode 100644 index 0000000..ca16b46 Binary files /dev/null and b/src/assets/trigger-paddle2.png differ diff --git a/src/assets/trigger-solder.png b/src/assets/trigger-solder.png new file mode 100644 index 0000000..155e87a Binary files /dev/null and b/src/assets/trigger-solder.png differ diff --git a/src/assets/trigger-solder2.png b/src/assets/trigger-solder2.png new file mode 100644 index 0000000..5faaefc Binary files /dev/null and b/src/assets/trigger-solder2.png differ diff --git a/src/assets/usb-c-port.jpg b/src/assets/usb-c-port.jpg new file mode 100644 index 0000000..aa6b33c Binary files /dev/null and b/src/assets/usb-c-port.jpg differ diff --git a/src/assets/z-btn.png b/src/assets/z-btn.png new file mode 100644 index 0000000..5e48468 Binary files /dev/null and b/src/assets/z-btn.png differ diff --git a/src/phob2-to-naxgcc.md b/src/phob2-to-naxgcc.md index daa0d16..ebcbc7d 100644 --- a/src/phob2-to-naxgcc.md +++ b/src/phob2-to-naxgcc.md @@ -6,6 +6,8 @@ You'll notice that the GCC cable no longer works. The whole point of the NaxGCC You will also need a **right-angle micro USB cable** to connect to the Phob board. This is because the clearance between the board and the shell is very tight, and a regular micro USB cable will not fit. Alternatively, you can drill or melt a hole in the top part of the shell, but this is not recommended as it will make the controller less comfortable to hold. +You will also need to make modifications to your top shell, as outlined in the [hardware assembly guide](./assembly.md#top-shell-modification). + > **NOTE:** When choosing a right-angle micro USB cable to buy, keep in mind that the wide side of the trapezoid connector is going to be facing upwards when the controller is held normally. Most right-angle micro USB cables have the wide side facing downwards, so you will need to find one that fits this particular use case. Here's an example of what it _should_ look like: > >