Home / GP2040-CE
Firmware · open source

GP2040-CE on the w1spBox: what the firmware actually does

Every w1spBox Studio ships with GP2040-CE — Community Edition gamepad firmware for RP2040 boards. It is why the stick is plug-and-play on PC, why you can change SOCD without installing software, and why input lag stays under a millisecond. This is the player-facing tour: the features I actually use, and the ones that matter for Street Fighter 6.

What GP2040-CE is

GP2040-CE is open-source firmware that turns a Raspberry Pi Pico (or another RP2040 board) into a multi-platform gamepad. The project lives at gp2040-ce.info. It is not a Windows app. The configurator is a website that the controller itself serves when you hold S2 on plug-in.

Officially it talks to PC, PS3, PS4, PS5, Nintendo Switch, Xbox One, Steam Deck, MiSTer and Android. On the w1spBox, the daily drivers are PC / Steam Deck / Switch / PS3 / PS4 legacy. PS5 still needs a Brook Wingman (or similar) — more on that below.

Latency

This is the reason tournament players care. GP2040-CE publishes lab numbers using the methodology from inputlag.science, at a 1000 Hz poll rate. From their v0.7.12 results:

Mode Average Min–max
XInput (PC)0.76 ms0.45–1.28 ms
Nintendo Switch0.72 ms0.41–1.22 ms
PS30.83 ms0.52–1.46 ms
PS40.90 ms0.55–2.33 ms
PS50.91 ms0.55–2.38 ms

In practice that is “the stick is not the bottleneck.” One-frame links in SF6 are on you, not the USB stack. Newer firmware revisions can shift these numbers slightly; the project keeps the latest tables on the homepage.

The web configurator (no install)

Hold S2 while you plug the USB-C cable into a computer, then open http://192.168.7.1 in Chrome, Firefox or Edge. That is the whole workflow — documented here: Web Configurator. You can also hold S2 + B3 + B4 for five seconds while the stick is already plugged in.

From that page you can:

  • Remap buttons and keyboard keys
  • Pick the default input mode (XInput, Switch, PS4/PS5, etc.)
  • Set SOCD cleaning and D-pad vs left/right stick emulation
  • Edit hotkeys, or lock them so you cannot trigger them by accident
  • Save profiles (different GPIO maps) if you ever rewire

Windows, Mac, Linux, SteamOS and iPadOS are supported. Phone browsers are hit-and-miss. If 192.168.7.1 does not load, use a data-capable cable (not charge-only) and try another USB port — the w1spBox setup guide walks through the same steps.

SOCD cleaning (the SF6-relevant part)

SOCD means simultaneous opposite cardinal directions — Left+Right or Up+Down at the same time. Consoles and Capcom Pro Tour rules expect the stick to resolve that, not send both. GP2040-CE can clean it in several ways (hotkeys docs).

Every w1spBox Studio ships already set to Neutral — the competitive default for Street Fighter 6. Plug it in and play a CPT-legal match; you do not have to open the web configurator first. The table below is only if you need to switch, or if a hotkey knocked you out of Neutral.

Mode What happens Default hotkey
Up Priority (“stickless”) Up+Down → Up. Left+Right → neutral. S2 + A1 + Up
Neutral (how the w1spBox ships) Opposites cancel. Competitive SF6 / CPT default. S2 + A1 + Down
Last Win (second input priority) The direction you pressed second wins. S2 + A1 + Left
First Win The first direction is kept until you release it. Configurable in web config
Off Both directions are sent. XInput only — Switch/PS3/PS4 force Neutral instead. Configurable

Mode is remembered across unplugs. If a combo suddenly feels “wrong,” you probably hit a hotkey. You can disable or rebind them under Settings → Hotkeys, or turn on Lock Hotkeys.

CPT / SF6: the w1spBox leaves Almere in Neutral. Stay on Neutral for events — Up Priority is not CPT-legal. Do not show up with SOCD Off.

D-pad vs analog stick

Leverless controllers send a digital d-pad by default. Some games (3D fighters, platformers, Steam input quirks) want a left stick instead. Default hotkeys:

  • S1 + S2 + Down — digital d-pad
  • S1 + S2 + Left — left analog
  • S1 + S2 + Right — right analog
  • S1 + S2 + Up — Home / Guide

Dual-direction (d-pad + stick at once) and a reverse-input button exist if you need them. Most SF6 players never touch those.

Input modes and boot buttons

Fourteen modes, including XInput, Switch, PS4/PS5, Xbox One, DirectInput and Keyboard. The mode you last used is saved. Many boards also let you force a mode by holding a face button while plugging in — that map is configurable in web config under Settings.

PC: XInput. Switch / Steam Deck: Switch or XInput depending on the dock. Keyboard mode is there for hitbox-to-WASD experiments; remap keys in the configurator.

PlayStation and the 8-minute timeout

PS4 and PS5 authenticate licensed pads. A stick that does not answer that handshake works for about eight minutes, then dies until you replug. That is Sony, not a GP2040 bug. Details: console compatibility FAQ.

GP2040-CE can authenticate in PS4/PS5 modes if the board has a USB host port and a compatible dongle. The w1spBox is built as a clean leverless for PC-first play: PS4 legacy works plug-and-play; native PS5 needs a Brook Wingman (or equivalent) between stick and console. Do not chain the adapter the wrong way — passthrough devices belong on a host port, not as a USB sandwich that adds lag.

The rest of the feature list (what the w1spBox does not rely on)

The firmware can also do turbo + turbo LED, per-button RGB, OLED splash screens, a tiny speaker, extra analog add-ons, and player LEDs. Those are optional hardware. I keep the Studio chassis focused: hot-swap Kailh Choc, GP2040-CE, no extra light show. You still get the configurator, SOCD, modes and the latency.

Firmware updates use BOOTSEL / a .uf2 drop. On this board: hold the documented combo (or S1+S2+Up while plugging in, depending on config), then flash the UF2 from the GP2040-CE project. Back up a known-good UF2 before you update.

Why I ship it

I am not going to pretend I wrote this firmware. I assemble fightsticks in Almere and I need something that survives a local SF6 bracket, talks to a Steam Deck, and lets a customer change SOCD without installing a sketchy .exe. GP2040-CE is that. If you want the lab numbers and every add-on, read the official docs. If you just unboxed a w1spBox, start with the setup guide, then come back here when you want to know what those web-config toggles actually mean.

Feature list, latency table and SOCD behaviour summarised from GP2040-CE documentation (homepage, usage, web configurator, hotkeys, console FAQ). GP2040-CE is a community project; names and measurements can change with firmware versions.