This guide will help you get acquainted with your controller and its features.

Granola controllers use GP2040-CE firmware, which has a ton of advanced capabilities and features. This guide covers the important functions, but you can view the in-depth documentation on the GP2040-CE website.

Gameplay Controls

Menu buttons (left to right): Start, Select, Home, Touchpad (PS4). Left side buttons (left to right): L3, Left, Down, Right, Up. Right side buttons (left to right, top to bottom): X, Y, R1, L1, A, B, R2, L2
Depending on which console you're using, some of these button names will change. For example, on Nintendo consoles, A/B and X/Y have switched positions. But the basic layout will stay the same regardless of which console you select.

On PC, the Touchpad button is not used. So don't be concerned if it doesn't do anything!

Selecting your Console

Hold down the following buttons to change consoles: A (Switch), B (Xinput/PC), X (PS3), Y (PS4/PS5), R1 (Xbox One), R2 (Keyboard). PS4/PS5/Xbox requires USB Passthrough device or PS4 license key upload through the web configurator.

By default, your controller will arrive set to "Xinput" mode. Xinput is the standard controller library for PC games. Your controller also supports other consoles. If you want to play on a different console, hold down these buttons as you plug in the controller: 

  • A: Nintendo Switch
  • B: PC/Xinput
  • X: PS3/DirectInput
  • Y: PS4/PS5*
  • R1: Xbox One/Xbox Series*
  • R2: Keyboard
  • If you are using an older PC, or you are having trouble getting "XInput" to work correctly, you might try "DirectInput" mode. DirectInput is an older standard library for PC controllers, and has better compatibility with older hardware.

    * If you want to play on PS4, PS5, or Xbox, you will need a USB passthrough device, or you will need to upload PS4 keys to the controller. Refer to the following section for more information.

    PS4, PS5 and Xbox Compatibility

    Sony and Microsoft use a form of encryption to prevent you from using unlicensed controllers on their platforms. While your Granola controller can connect to PS4,  PS5 and Xbox, it needs to be authenticated or else it will automatically disconnect after a few minutes. 

    There are two ways to get the authentication:

    PS4 Keys Method

    If you have a valid license key file for the Dualshock 4 controller, you can upload this file via the Web Configurator to use the controller on PS4. There are instructions below to help you access the Web Configurator. From there, browse to "Configuration -> Add-Ons Configuration" and enable the "PS4 Mode" add-on. Upload the required files and click "Verify & Save."

    We are not legally allowed to host, distribute, or help you locate these files. Please don't ask us where to get them.

    USB Passthrough Method

    You can also get authentication to Sony and Microsoft consoles using USB Passthrough. USB Passthrough is a feature of GP2040-CE that allows your controller to use the authentication provided from a separate device. You simply need to plug in a separate USB device to the passthrough port on your controller. The passthrough port is the USB-A port located on the top of your controller:

    The passthrough port is located along the top of your controller on the right side (opposite the menu buttons).

    Passthrough mode is already enabled on your controller, so once you insert an appropriate passthrough device, just switch to the console mode you wish to play and enjoy!

    Which devices are compatible with USB Passthrough?

    The following devices are confirmed to authenticate to PS4 and PS5:

    • Mayflash Magicboots PS4 v1.1 converter/adapter
    • Brook Wingman FGC

    The following devices are confirmed to authenticate to Xbox One and Xbox Series:

    • Mayflash Magicboots Xbox One converter/adapter
    • Mayflash Magic-X Bluetooth USB adapter
    • Mayflash Magic-S converter 

    The following devices should work, but have not been tested directly:

    • Licensed PS4 Arcade Sticks
    • Licensed PS4 Driving wheels

    If you have one of these devices and you confirm they do or do not work, please let us know on the Granola discord or by email!

    Please note that regular PS4, PS5 and Xbox controllers do not work as passthrough devices. These controllers do not authenticate to the console with a method that your controller can understand.

    Which games work with USB Passthrough?

    When using USB Passthrough on PS4 and PS5, your controller will be recognized as a licensed PS4 arcade stick. The game you play needs to be compatible with PS4 arcade sticks. This includes most fighting games and arcade games.

    On Xbox One and Xbox Series consoles, all games are supported, but many are not properly playable without an analog stick. You will again mostly be limited to fighting games and arcade games.

    Direction Button Settings

    There are a few shortcuts on your controller that you can use to change how the direction buttons behave.

    SOCD Settings

    Simultaneous Opposite Cardinal Direction (SOCD) settings change how the controller handles your inputs when you press two opposite directions at the same time (up and down, or left and right together). By default, this is set to "neutral priority," meaning that when you press opposite directions, the controller sends no inputs to the PC/console. You can use the following shortcuts to change your SOCD priority while your controller is connected:

     Priority type Shortcut Description
    Neutral Select + Home + Down When opposite directions are pressed, send no input.
    Up Select + Home + Up When UP and DOWN are pressed, send UP.
    Last Wins Select + Home + Left When opposite directions are pressed, send the most recent input.

    Please note that many tournaments and events have rules about SOCD settings - changing this setting may disqualify you from competing in certain events. Check your tournament rules or ask your organizers for clarification.

    D-Pad Settings

    Your controller only has one direction input, but many controllers on different consoles have multiple analog sticks and d-pads. By default, your controllers direction inputs will operate the left analog stick. You can use the following shortcuts to change which d-pad your controller is operating while it is connected:

     Directional input Shortcut
    Left Analog Start + Select + Left
    Right Analog Start + Select + Right
    D-Pad Digital Start + Select + Down

    If your direction buttons aren't working but the rest of the buttons are, you probably need to change your D-Pad settings.

    Accessibility inputs

    Your controller has additional ports that you can use to connect external buttons, like foot pedals or other fully customized controls. To use these ports, you will need:

    • TRS cable with stereo splitter
    • Switch or pedal that can connect to the TRS cable

    Full guide on this coming soon!

    Advanced Settings

    Access the web configurator by holding Select and visiting in a web browser. Use the web configurator to change advanced settings.
    GP2040-CE has a wealth of additional features and settings that you can access using the built-in web configurator console. You can use the configurator to create profiles, macros, install add-ons, re-map buttons, upgrade your firmware, or do all sorts of other things. It's very powerful, so use it at your own risk!

     To access the web configurator, hold "Select" as you plug in your controller to your PC. Then visit in your web browser.

    Updating Firmware

    To update or change the firmware, you need to put the controller in BOOTSEL mode and then upload a firmware file. to the controller. In the Web Configurator, click "Reboot" and then "USB (BOOTSEL)" and the controller will reboot into BOOTSEL mode.

    In BOOTSEL mode, your controller will appear as a drive on your computer called "RPI-RP2" - you can drag a .uf2 file into this drive and the controller will accept the new firmware. You can download new builds of GP2040-CE from their website.

    If you can't access the Web Configurator, there are other ways to access the BOOTSEL mode.

    1. First, try holding down Start + Select + Up while plugging the controller in. The controller should boot into BOOTSEL mode.
    2. If that fails, while the controller is plugged in, hold down Select + X + Y for 10 seconds. The controller should reboot into BOOTSEL mode.
    3. If that does not work, locate the two pins labeled "BOOTSEL" on the PCB. You can see the pins by looking inside the top of the controller, near the accessibility ports. If you bridge these two pins together while plugging the controller in, you should access the BOOTSEL mode. Watch out not to damage the electronics which are close to these pinsYou can use tweezers, a paper clip, or any other conductive material to bridge the pins.

    Care, Wear and Tear

    What do I need to watch out for?

    The case and button caps are printed from PLA Pro plastic. They should be plenty durable, but cannot survive high temperatures (above ~130°F/~55°C). So don’t leave your controller in a hot car, it will warp.

    How do I clean my controller?

    I recommend isopropyl alcohol (70% or higher concentration) and paper towels to wipe down the surfaces.

    How do I take my controller apart?

    To take your controller apart, pull out all of the switches from the front of the controller. Then you can gently tap on the front of the controller until the PCB comes out from the open top. If you grab on to the top, watch out not to damage the electronics which are close to the top of the PCB.

    To put it back together, insert the PCB into the top of the controller with the electronics and hotswap sockets on the bottom side. Then insert the switches and button caps into the front of the controller.

    This manual is a work in progress!

    Your controller has many capabilities and features not listed in this guide. We encourage you to visit the GP2040-CE website, join the OpenStickCommunity Discord and learn as much as you can about the firmware and your controller. We will continue to update this guide over time, and if you need help, don't be afraid to reach out via email or the Granola Discord. Thanks!