Terminal PiCowbell
Orient your Pico H or Pico WH as shown -- with the Pico USB port above the PiCowbell I2C STEMMA QT port -- and press the header pins into the sockets.
Install Firmware and Customize Settings
GP2040-CE is an open source gamepad firmware that's compatible with RetroPie, PC, PS3/PS4, Nintendo Switch, Xbox, and more. It runs on a number of microcontrollers that use the RP2040 chip, such as Pico, KB2040 Kee Boar, and more.
Flash the Pico with a drag-and-drop .uf2 file and then customize settings with a web editor.
Download Firmware
From the GP2040-CE Downloads page, click the Download button for the Raspberry Pi Pico firmware.
This will save a file named GP2040-CE_0.7.8_Pico.uf2
(or later) to your download location.
A Pico W will work for this project too, although there are currently no WiFi or BLE features in GP2040. If using a Pico W, download the GP2040 for that specific board from the downloads page.
Firmware Installation
This page gives detailed instructions on installation, but the basic steps are:
- While holding the BOOTSEL button down, plug the Pico into your computer with a known good data and power USB cable -- this puts the board into BOOTSEL/USB drive mode
- A new removable drive named
RPI-RP2
will appear on your computer - Drag-and-drop the CP2040-CE v0.7.8.uf2 (or later) firmware .uf2 file onto the
RPI-RP2
drive and wait for it to copy the file and reboot itself
Web Configurator
Unplug the Pico from your computer's USB cable. Then, you'll use a short wire to jumper Pico pin GP17 to a GND pin (see attached diagram for physical pin locations).
Plug the Pico into your computer's USB cable while pin GP17 is shorted to ground. After a couple of seconds you can remove the wire. This action has caused the Pico's GP2040-CE firmware to launch a web server you can access from your computer's web browser by visiting http://192.168.7.1
You can configure the Pico to act like different controllers, such as PS4, Xbox, Switch, XInput, and more. We'll pick DirectInput, which is a venerable controller scheme with excellent compatibility with PC, Mac OS, and Linux based machines.
Settings
You can now update the controller settings.
Click on the Settings menu item and then switch the Input Mode to PS3/DirectInput then press Save.
You can alternately use this on your Switch, Xbox, or Playstation -- just pick the appropriate Input Mode from the menu.
Reboot
To get the Pico out of configuration mode and into controller mode, click the REBOOT button in the upper right corner of the configuration page.
This opens a reboot popup. From here, click the CONTROLLER button to restart the Pico in controller mode.
If you ever need to get back to configuration, short GPIO17 to ground during power-up. Once your Pico is wired to your arcade controller, this will be the START button.
The pinout diagram below shows the default GPIO-pin to button mapping.
Button Test
This is a great time to test the controller to make sure basic button presses are working.
Plug the Pico into your computer with a known good USB-C to Micro-B data and power cable. Head to this gamepad tester in your browser to see the button presses.
You can now use a jumper wire to short any mapped GPIO pin to ground -- those button presses will register on the controller tester.
Text editor powered by tinymce.