GP2040-CE Web Configurator
Select the button labels to be displayed in the usage guide:
GP2040-CE contains a built-in web-based configuration application which can be started by holding S2
when plugging your controller into a PC or by holding S2 + B3 + B4
for five seconds while the controller is plugged in. Then access http://192.168.7.1 in a web browser to begin configuration.
Supported
- Windows
- Mac
- Linux
- SteamOS
- iPadOS
Not fully supported
- Android
- iOS
Not all Android and iOS devices are suppored for web-config. In our testing some Android devices will work and others will not. Most USB-C based iOS devices will work. We do not keep a list of which devices do and do not work.
Trouble accessing web-config on a Windows PC
If your Windows PC cannot access the built-in web-config of your GP2040-CE controller, try the following steps:
1 - Ensure you are in web-config mode
- Ensure your controller is in Web-Config mode.
- Verify the USB cable is securely connected and supports data transfer (some cables are power-only).
2 - Try a Different Browser
- Some browsers may block local device access. Try Chrome, Firefox, or Edge.
- Disable browser extensions (like ad-blockers) temporarily.
3 - Check the URL
- The web-config URL is http://192.168.7.1.
4 - Disable Firewall/Antivirus Temporarily
- Security software may block communication. Test with protections temporarily disabled.
5 - Try Another USB Port/PC
- Test on a different port or on a different computer.
6 - Try restarting your computer
- Try restarting your computer.
In addition to the above there may be issues with drivers installed on your PC. Due to the risk of causing system issues the GP2040-CE team will no assist in drvier based issues or recommend drivers be installed / uninstalled.
Linux distributions may need some extra steps to access the web configurator; see Linux Setup.
Linux Setup
When you plug in your controller while holding S2
, you should see it connect in the kernel logs if you run dmesg
:
[ 72.291060] usb 1-3: new full-speed USB device number 12 using xhci_hcd
[ 72.450166] usb 1-3: New USB device found, idVendor=cafe, idProduct=4028, bcdDevice= 1.01
[ 72.450172] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 72.450174] usb 1-3: Product: TinyUSB Device
[ 72.450176] usb 1-3: Manufacturer: TinyUSB
[ 72.450177] usb 1-3: SerialNumber: 123456
[ 72.484285] rndis_host 1-3:1.0 usb0: register 'rndis_host' at usb-0000:06:00.1-3, RNDIS device, 02:02:84:6a:96:00
[ 72.498630] rndis_host 1-3:1.0 enp6s0f1u3: renamed from usb0
In the above example, enp6s0f1u3 is the virtual Ethernet interface for your controller. If you don't see the first rndis_host
line, make sure CONFIG_USB_NET_RNDIS_HOST
is compiled in your kernel or as a module.
The web configurator is automatically running, you just need to be able to reach it. Some configurations automatically set up the route, so try http://192.168.7.1 in your browser now. If it doesn't load, try configuring an IP for the interface manually via: sudo ifconfig enp6s0f1u3 192.168.7.2
.
Whether or not you had to add an IP manually, you should end up with a route something like this:
% ip route
default via 10.0.5.1 dev enp5s0 proto dhcp src 10.0.5.38 metric 2
10.0.5.0/24 dev enp5s0 proto dhcp scope link src 10.0.5.38 metric 2
192.168.7.0/24 dev enp6s0f1u3 proto kernel scope link src 192.168.7.2 <---
Then the configurator should be reachable in your browser.