Button Hold Diagram
Special Modes
Config Mode (Pico Only)
This mode is only available on Pico/RP2040-based devices.
Pico Bootsel Mode
This is a quick way to reflash firmware on Pico-based controllers without physically pressing the bootsel button.
.uf2 firmware file to update your controller.
Brook Board Passthrough Mode
Available on GCCPCB2, GCCMX, B0XX R2, and LBX configurations.
Communication Backend Selection
- Pico/RP2040
- Arduino/AVR
On Pico/RP2040 devices, HayBox automatically detects whether you’re plugged into:
- USB - Defaults to XInput mode
- GameCube console - Automatically detected
- Nintendo 64 console - Automatically detected
Manual Backend Selection
You can override the default USB backend by holding these buttons on plugin:| Button | Backend | Description |
|---|---|---|
| RF2 (X) | Nintendo Switch USB | Also sets initial game mode to Ultimate |
| RF3 (Z) | DInput | Only recommended for games that don’t support XInput |
XInput is the default and recommended backend for most PC games as it provides the best compatibility.
Polling Rate Configuration
Arduino/AVR Polling Rate
On Arduino devices, you can configure the polling rate in your config file. The polling rate value is passed to the backend constructor:125- Standard GameCube console (125Hz)1000- Overclocked adapter (1000Hz)0- Disable lag fix completely
While 1000Hz works on console, it will result in more input lag. The polling rate setting allows the GameCube backend to read inputs right before the next poll for optimal freshness.
Pico/RP2040 Polling Rate
Pico/RP2040 devices do not require polling rate configuration.
Button Naming Reference
HayBox uses a consistent button naming scheme:- LF = Left Face (L, Left, Down, Right)
- LT = Left Top (Mod X, Mod Y)
- MB = Middle Buttons (Start, Select, Home)
- RT = Right Top (A, C-Down, C-Left, C-Up, C-Right)
- RF = Right Face (B, X, Z, Up, R, etc.)
config/<environment>/config.cpp file for the specific pin mappings.