Skip to main content

GP2040-CE Usage

Select the button labels to be displayed in the usage guide:

GP2040

caution

The v0.5+ release has some breaking changes to boards other than the Raspberry Pi Pico. If you are using such a board, do not update from an older version unless you have a backup .uf2 from a known good version, or you know what you're doing.

Buttons

GP2040-CE uses generic button labeling for gamepad state, which is then converted to the appropriate input type before sending. This table provides a map of GP2040-CE buttons to the supported input types and layouts:

GP2040-CEXInput
Xbox One
SwitchPS4PS3DirectInputArcade
B1ABCrossCross2K1
B2BACircleCircle3K2
B3XYSquareSquare1P1
B4YXTriangleTriangle4P2
L1LBLL1L15P4
R1RBRR1R16P3
L2LTZLL2L27K4
R2RTZRR2R28K3
S1BackMinusShareSelect9Coin
S2StartPlusOptionsStart10Start
L3LSLSL3L311LS
R3RSRSR3R312RS
A1GuideHomePSPS13Home
A2-CaptureTouchpad-14-

If your controller is missing dedicated buttons for any specific inputs, check the Hotkeys page on how to map a button combination that will emulate those missing inputs.

note

Unlike other controllers, Keyboard gets different keys for directional buttons. You can change the key mappings for Keyboard mode in Webconfig mode > Configuration > Keyboard Mapping

DirectionKeyboard
UpUp Arrow
DownDown Arrow
LeftLeft Arrow
RightRight Arrow

Bootsel Mode

Bootsel Mode is the state of the board where firmware can be flashed onto the board. You will need to use this whenever there is an update or as part of the troubleshooting process.

You can boot into Bootsel Mode by either holding S1 + S2 + Up buttons while plugging in the controller, by booting into the Web Configurator and then restarting in Bootsel Mode, or by holding S1 + B3 + B4 together for five seconds while the controller is plugged in. There is no way to leave Bootsel mode once activated other than by flashing new firmware or by unplugging the device.

Generally, there is a Bootsel button somewhere on the board. This is often an exposed button on the PCB or a button inside the controller that requires either a pin to press or disassembly of the controller.

note

There are a number of controllers that elect not to include the Bootsel button. In these instances, you will need to locate the placement of the button and use conductor to connect the 2 sides of the contacts or pads together while plugging in or booting the controller.

WebConfig Mode

WebConfig Mode is the state of the board where built-in web browser-based configuration application is launched. From here, you can customize and configure your controller as needed. For more information, click here for more information.

You can boot into WebConfig Mode by holding the S2 button while plugging in the controller or by holding S2 + B3 + B4 for five seconds while the controller is plugged in. Holding this same combination again for five seconds while in webconfig mode will swap the device back to the previously used controller mode.

Input Modes

GP2040-CE is compatible with a number of systems and input modes. The specific input modes assigned to 8 buttons when held is configurable in the Web Configurator under Settings.

However, there are default input modes assigned in precompiled firmware. To change input modes, hold one of the following buttons as the controller is plugged in:

Primary Input ModeButton Held
Nintendo SwitchB1
XInputB2
PS3/DirectInputB3
PS5B4
Xbox OneR1
KeyboardR2
Original XBoxUnassigned
Mini/Classic ConsolesButton Held
Sega Genesis/MegaDrive MiniUnassigned
NEOGEO miniUnassigned
PC Engine/Turbografx 16 MiniUnassigned
EGRET II MiniUnassigned
ASTROCITY MiniUnassigned
Playstation ClassicUnassigned
note

Input mode is saved across power cycles.

Hotkeys

A number of useful hotkeys exist that change the functionality of GP2040 without needing to access the Web Configurator. All of the hotkeys and hotkey bindings can be changed or assigned to different button combinations in Hotkeys Settings section of the Web Configurator.

Commonly used hotkeys include changing the directions to emulate a digital DPad, Left analog joystick, Right analog joystick or to change Simultaneous Opposite Cardinal Direction (SOCD) cleaning modes. Different SOCD cleaning modes will ensure the controller obeys certain directional input rules when sending inputs to the computer or game console.

A number of hotkeys are enabled by default and if you are encountering issues with unexpected behavior on your controller, verify that you did not accidentally trigger a hotkey.

Hotkeys Enabled By DefaultInputs
Home ButtonS1 + S2 + Up
Dpad DigitalS1 + S2 + Down
Dpad Left AnalogS1 + S2 + Left
Dpad Right AnalogS1 + S2 + Right
SOCD Up PriorityS2 + A1 + Up
SOCD NeutralS2 + A1 + Down
SOCD Last WinsS2 + A1 + Left
note

Selected D-Pad mode and SOCD cleaning mode are saved across power cycles.

Add-Ons and Additional Features

There are a number of add-ons that expand the functionality of GP2040-CE, such as analog joystick emulation and turbo functions. Due to the large number of add-ons created by the community, they are located in a separate documentation page. Navigate to Add-Ons page for more information on the individual add-ons.