GP2040-CE Usage
Select the button labels to be displayed in the usage guide:
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:
- Primary Input Modes
- Mini/Classic Consoles
GP2040-CE | XInput Xbox One | Switch | PS4 | PS3 | DirectInput | Arcade | RP2040 Advanced Breakout Board |
---|---|---|---|---|---|---|---|
B1 | A | B | Cross | Cross | 2 | K1 | K1 |
B2 | B | A | Circle | Circle | 3 | K2 | K2 |
B3 | X | Y | Square | Square | 1 | P1 | P1 |
B4 | Y | X | Triangle | Triangle | 4 | P2 | P2 |
L1 | LB | L | L1 | L1 | 5 | P4 | P4 |
R1 | RB | R | R1 | R1 | 6 | P3 | P3 |
L2 | LT | ZL | L2 | L2 | 7 | K4 | K4 |
R2 | RT | ZR | R2 | R2 | 8 | K3 | K3 |
S1 | Back | Minus | Share | Select | 9 | Coin | S1 |
S2 | Start | Plus | Options | Start | 10 | Start | S2 |
L3 | LS | LS | L3 | L3 | 11 | LS | L3 |
R3 | RS | RS | R3 | R3 | 12 | RS | R3 |
A1 | Guide | Home | PS | PS | 13 | Home | A1 |
A2 | - | Capture | Touchpad | - | 14 | - | A2 |
GP2040-CE | Sega Genesis MegaDrive Mini | NEOGEO Mini | PC Engine Turbografx 16 Mini | EGRET II Mini | ASTROCITY Mini | Playstation Classic |
---|---|---|---|---|---|---|
B1 | A | B | 1 | A | A | Cross |
B2 | B | D | 2 | B | B | Circle |
B3 | X | A | - | D | D | Square |
B4 | Y | C | - | E | E | Triangle |
L1 | - | L1 | - | - | - | L1 |
R1 | Z | R1 | - | F | F | R1 |
L2 | - | L2 | - | - | - | L2 |
R2 | C | R2 | - | C | C | R2 |
S1 | Mode | Select | Start | Start | Credit | Start |
S2 | Start | Start | Run | Credit | Start | Select |
L3 | - | - | - | - | - | - |
R3 | - | - | - | - | - | - |
A1 | - | Options | - | Menu | - | - |
A2 | - | - | - | - | - | - |
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.
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
Direction | Keyboard |
---|---|
Up | Up Arrow |
Down | Down Arrow |
Left | Left Arrow |
Right | Right 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.
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 Mode | Button Held |
---|---|
Nintendo Switch | B1 |
XInput | B2 |
PS3/DirectInput | B3 |
PS5 | B4 |
Xbox One | R1 |
Keyboard | R2 |
Original XBox | Unassigned |
Mini/Classic Consoles | Button Held |
---|---|
Sega Genesis/MegaDrive Mini | Unassigned |
NEOGEO mini | Unassigned |
PC Engine/Turbografx 16 Mini | Unassigned |
EGRET II Mini | Unassigned |
ASTROCITY Mini | Unassigned |
Playstation Classic | Unassigned |
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.
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.