# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
This site has an agentic ask interface you may use to query the documentation dynamically by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://help.gramctrl.com/index.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

---

# GRAM Help Desk

## **Howdy, Partner!**

Welcome to the GRAM Fam! This site will walk you through all the steps you need to get started playing on your new GRAM Digital Controller. Here, you can download the latest firmware, understand game modes, and learn all the features your GRAM comes with. We also have some helpful tips for troubleshooting, modifications, and repairs.\
\
Need more help, or want to chat with other GRAM players? It's highly recommended to join our [Discord Server](https://discord.gg/gramctrl) to connect with our lovely open-source community or open a support ticket.

### Which Controller do you have?

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-cover data-type="files"></th><th data-hidden></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>GRAM SLIM</strong></td><td>21-button controller for Platform fighters.</td><td></td><td></td><td><a href="/getting-started/gram-slim">GRAM SLIM</a></td></tr><tr><td><strong>GRAM FGC</strong></td><td>14-button controller for traditional fighters.</td><td></td><td></td><td><a href="/getting-started/gram-fgc">GRAM FGC</a></td></tr></tbody></table>


# GRAM SLIM

Your **GRAM Slim** is an premium, low-profile controller with incredible versatility and unmatched portability. This guide will get you up and running with your Slim and show you to all the game modes built into it. We will also give you an introduction to reflashing alternative firmwares, basic troubleshooting, and point you to any support resources available to you.

For more information, we suggest joining the discord to meet all the other members of the GRAM community. You can find an invite link at [discord.gg/gramctrl](https://discord.gg/gramctrl) or on our website, [gramctrl.com](https://gramctrl.com).

We highly recommend that you bookmark this guide so you can play any game on any console at any time.

Finally, we would like to thank you for supporting us in our passions and helping fund a small business in the Smash scene. When we started GRAM, we had one guiding motto: **MAKE COOL SHIT**. It’s because of people like you that we get to continue to do that every single day.

***Welcome to the Cheater’s Club*****.**


# Initial Setup

Select the Dropdown below to setup your GRAM Slim on any supported platform.

<details>

<summary>Steam (PC)</summary>

1. Plug your GRAM Slim into your PC with the included USB-C to USB-A Cable.&#x20;
2. Navigate to: *Steam > Settings > Controller* Select “**Xbox 360 Wireless Controller**” and rename it to “**GRAM Slim**”.
3. You can now switch game modes to match the game you are playing in Steam, and your controller will be recognized.

</details>

<details>

<summary>Slippi/Dolphin (PC)</summary>

1. Go to [**GRAMCTRL.com/dolphin**](https://GRAMCTRL.com/dolphin) for the latest .ini config file for HayBox-based controllers.
2. Copy the .ini file to:&#x20;

   **`%appdata%\Slippi Launcher\netplay\user\Config\Profiles\GCPad\`**

   *(If this path does not exist, create it.)*&#x20;
3. Plug your GRAM Slim in with the included USB-C to USB-A Cable.
4. Configure a port in Dolphin as “**Standard Controller**”.
5. Refresh the device dropdown.
6. Select “**HayBox**” from the Profile drop-down.
7. Click “**Load**” (NOT Save).

</details>

<details>

<summary>Gamecube/Wii</summary>

1. Plug your GRAM Slim into the GameCube port using the included USB-C to GameCube cable.
2. Switch to the desired mode and begin playing!

</details>

<details>

<summary>Nintendo Switch (USB)</summary>

1. Hold down “**X**” while plugging in your GRAM Slim into your Switch dock with the included USB-C to USB-A Cable.
2. Your controller will now be recognized as an Xinput Switch controller and be defaulted into Ultimate mode.
3. Switch to the desired mode and begin playing!

</details>

<details>

<summary>Nintendo Switch (Adapter)</summary>

1. Plug your GRAM Slim into the GameCube adapter using the included USB-C to GameCube cable.
2. When connecting in-game, set the controller type as **GameCube Controller**.
3. Switch to the desired mode and begin playing!

</details>

<details>

<summary>Brook Wingman (Playstation/Xbox)</summary>

1. Plug the Brook Wingman that corresponds to your console into the USB-A port on your console.
2. When the Wingman starts flashing, hold down “**X**” while plugging your GRAM Slim into the Wingman’s USB-A port.
3. Enter FGC Mode by pressing **ModX+Right+Start**.
4. Use the Home button (**C-stick down**) to log in to the console *(PS4/PS5 only)*.
5. Switch to the desired mode and begin playing!

</details>


# Game Modes

Once you've plugged in your controller, game modes are accessed using run-time key combinations. These all start with the prefix MX+Start.

Once you've plugged in your GRAM Slim, game modes are accessed using run-time (after plugging in) key combinations. These all start with the prefix **MX + Start** and include an activation button corresponding to each mode. All modes have optimized layouts and angles for their respective games.

In order to remap the layouts of any game mode, please visit [remapp.ing](https://remapp.ing/).

*(All game mode button combination are written in melee mode layout with default mappings, as it is the default mode. These button combinations will not change with remappings.)*

## Melee (MX+ST+LT)

<figure><img src="https://1457615397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWlEv96mz5QGL3P9ASzob%2Fuploads%2Ff5YvNmth8loQD2A2G8Cs%2FScreenshot%202025-02-11%20180743.png?alt=media&amp;token=19b1170f-4329-473e-8e97-c93aeaeba572" alt="" width="563"><figcaption><p>DP* represents a D-Pad modifier. When held, it will turn your C-stick cluster into a D-Pad.</p></figcaption></figure>

## PM/P+ (MX+ST+Left)

<figure><img src="https://1457615397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWlEv96mz5QGL3P9ASzob%2Fuploads%2FbF0mFpy9WBtbxzJrlVO3%2FScreenshot%202025-02-11%20180837.png?alt=media&amp;token=3e444cd7-d976-4202-9e06-4d9ed36bec13" alt="" width="563"><figcaption><p>MX + R+A = True Z Press</p></figcaption></figure>

## Ultimate (MX+ST+Down)

<figure><img src="https://1457615397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWlEv96mz5QGL3P9ASzob%2Fuploads%2FTMb07xOM9Lsiz6evgoze%2FScreenshot%202025-02-11%20180908.png?alt=media&amp;token=39eef464-56fe-44bb-8313-c5ebc3cf94b3" alt="" width="563"><figcaption></figcaption></figure>

## FGC (MX+ST+Right)

<figure><img src="https://1457615397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWlEv96mz5QGL3P9ASzob%2Fuploads%2Ff0T4yWRfBMY0Q7WvoyUn%2FScreenshot%202025-02-11%20181008.png?alt=media&amp;token=ec71185e-2dfc-474e-8fc9-981367f01e5e" alt="" width="563"><figcaption></figcaption></figure>

## Rivals 1 (MX+ST+B)

<figure><img src="https://1457615397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWlEv96mz5QGL3P9ASzob%2Fuploads%2Fo4Dw8XfdU9lPc3XCXmH6%2FScreenshot%202025-02-11%20181044.png?alt=media&amp;token=f0dc8b13-4f70-4dfa-ad72-bdc7d14dde56" alt="" width="563"><figcaption></figcaption></figure>

## Rivals 2 (MX+ST+RT)

<figure><img src="https://1457615397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWlEv96mz5QGL3P9ASzob%2Fuploads%2FnPLJpthc5DyEHFyB1qXs%2FScreenshot%202025-02-11%20181118.png?alt=media&amp;token=05d3ceaa-31e6-4a4d-90a6-2505b7e3d329" alt="" width="563"><figcaption></figcaption></figure>


# Modifications

There are various ways to customize your GRAM Slim, including panel swaps, reflashing firmware, foam mods, and cosmetic changes to frames and buttons. Here's how to do a few common modifications:

<details>

<summary>Re-flashing the Firmware</summary>

By default, your GRAM is running a custom fork of [HayBox](https://github.com/GrammyMoney/haybox-GRAMCTRL), but it is compatible with several alternative options. These have various pros and cons, and we cannot guarantee tournament legality with 3rd-party firmware. A few options are:

* Arte’s pico-rectangle
* Rana Digital pico-rectangle
* Tadpole configuration of GP2040-CE
* Haybox-LBX
* Bubblebox-WASD
* SkyFGCTrueZ

GRAM uses the standard OF1 pinout, so as new firmwares are released for pico-based rectangles, most will be compatible.

**To perform a reflash from the default firmware:**

1. While plugging into your PC over USB, hold the “**A**” button.
2. A new window will pop up, as if you plugged a flash drive into your PC.
3. Nuke the flash memory on the RP2040 chip with [this UF2 file](https://github.com/Gadgetoid/pico-universal-flash-nuke/releases).
4. Wait until your file explorer window pops up again.
5. Grab the UF2 file of the new firmware, and drag it into that window.
6. The window will disappear, and your controller is re-flashed.
7. Unplug and re-plug while holding nothing.
8. Select your game mode and begin playing!

</details>

<details>

<summary>Replacing Switches</summary>

1. Remove the PBT buttons by wiggling them out of the key switch.
2. Using a flathead screwdriver or thin knife, pop the switch out from the bottom edge *(this requires some force)*.
3. Push the new switch into the hole in the PCB *(make sure to line the pins up to the hotswap socket)* until you feel it click into place.
4. Repeat for the entire controller.

</details>

<details>

<summary>Swapping Frames</summary>

1. Remove the screws from the back using an **M2 hex** driver.
2. Pull the back panel off of the frame by twisting the frame to release a corner.
3. Remove the top panel from the frame with the PCB attached.
4. Place the top panel into the new frame, taking care to align the USB-C port with the hole in the frame *(This may require popping the corners into place).*
5. Pop the back panel back on.
6. Tighten the M2 screws back into place.

</details>

<details>

<summary>Swapping Panels</summary>

1. Remove the screws from the back using an **M2 hex** driver.
2. Pull the back panel off of the frame.
3. Remove the top panel from the frame with the PCB attached.
4. With a bit of force, remove the PCB from the top panel.
5. Pull all switches from the top panel.
6. Add the switches to your new panel.
7. With the top panel face down, align the PCB with the switch pins and press down.
8. Once PCB is in place, reassemble the controller using the hardware from the original controller.

</details>


# GRAM FGC

Your **GRAM FGC** is an premium, low-profile controller with incredible versatility and unmatched portability. If you’ve played on a leverless controller before, you already know most of these mappings, as your new controller is based on a fork of **GP2040-CE**. The addition of dedicated buttons for L3/R3 is to accommodate for modern fighting titles such as SF6. If not, here’s a quick rundown of button mappings and shortcuts to get you started on your journey.

For more information, we suggest joining the discord to meet all the other members of the GRAM community. You can find an invite link at [discord.gg/gramctrl](https://discord.gg/gramctrl) or on our website, [gramctrl.com](https://gramctrl.com).

We highly recommend that you bookmark this guide so you can play any game on any console at any time.

Finally, we would like to thank you for supporting us in our passions and helping fund a small business in the FGC. When we started GRAM, we had one guiding motto: **MAKE COOL SHIT**. It’s because of people like you that we get to continue to do that every single day.

***Welcome to the Cheater’s Club*****.**


# Web Configurator

1. Hold Down **START** while plugging into your PC to enter **Web Configuration** mode.&#x20;

   *Additionally, you can enter Web Configuration Mode in runtime by holding START+X+Y for 5 seconds at any time.*
2. Go into an internet browser and access [**http://192.168.7.1**](http://192.168.7.1) to enter the web configurator.
3. When finished with button remappings, add-ons like PS4 mode, and SOCD settings, close the browser and unplug your controller.
4. Replug your controller, and you’re good to go for all PC titles!


# Brook Wingman

In order to play on modern, DRM-secured consoles like **PS5/Xbox Series S**, you will need a converter of some kind. For PS5, we recommend the **Brook Wingman** converter as it is widely available and tested by the GRAM team directly.

## WINGMAN SETUP

1. Plug your wingman by itself into the console.
2. Wait for 5 seconds *(until the light on the converter comes on)*.
3. Plug your **GRAM FGC** into the wingman converter using the included USB data cable.


# Modifications

There are various ways to customize your GRAM FGC, including panel swaps, foam mods, and cosmetic changes to frames and buttons. Here's how to do a few common modifications:

<details>

<summary>Re-flashing the Firmware</summary>

To enter **bootsel** mode on your GRAM FGC, hold **Start + Select + Up** while plugging in.

*(It is recommended you flash nuke your controller before loading a new firmware.)*

</details>

<details>

<summary>Replacing Switches</summary>

1. Remove the PBT buttons by wiggling them out of the key switch.
2. Using a flathead screwdriver or thin knife, pop the switch out from the bottom edge *(this requires some force)*.
3. Push the new switch into the hole in the PCB *(make sure to line the pins up to the hotswap socket)* until you feel it click into place.
4. Repeat for the entire controller.

</details>

<details>

<summary>Swapping Frames</summary>

1. Remove the screws from the back using an **M2 hex** driver.
2. Pull the back panel off of the frame by twisting the frame to release a corner.
3. Remove the top panel from the frame with the PCB attached.
4. Place the top panel into the new frame, taking care to align the USB-C port with the hole in the frame *(This may require popping the corners into place).*
5. Pop the back panel back on.
6. Tighten the M2 screws back into place.

</details>

<details>

<summary>Swapping Panels</summary>

1. Remove the screws from the back using an **M2 hex** driver.
2. Pull the back panel off of the frame.
3. Remove the top panel from the frame with the PCB attached.
4. With a bit of force, remove the PCB from the top panel, taking care to not lose the small menu buttons.
5. Pull all switches from the top panel.
6. Add the switches to your new panel.
7. With the top panel face down, place all menu buttons back into the aligning holes.
8. Align the PCB with the switch pins and press down.
9. Once PCB is in place, reassemble the controller using the hardware from the original panels.

</details>


