# How do you set up the uConsole gamepad buttons for Retroarch

**URL:** <https://forum.clockworkpi.com/t/how-do-you-set-up-the-uconsole-gamepad-buttons-for-retroarch/19377>\
**Category:** uConsole\
**Created:** [August 23, 2025, 4:59pm UTC](https://forum.clockworkpi.com/t/how-do-you-set-up-the-uconsole-gamepad-buttons-for-retroarch/19377 "2025-08-23T16:59:04Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![z3r0fox](https://avatars.discourse-cdn.com/v4/letter/z/df788c/32.png) [@z3r0fox](https://forum.clockworkpi.com/u/z3r0fox)\
**Post date:** [August 23, 2025, 4:59pm UTC](https://forum.clockworkpi.com/t/how-do-you-set-up-the-uconsole-gamepad-buttons-for-retroarch/19377/1 "2025-08-23T16:59:04Z")

</div>

How does one go about getting the gamepad keys above the keyboard on the uConsole to work properly in RetroArch? I’m using @Rex’s Bookworm image. Got ARM cores and ROMs working.

“Port 1 Controls” under Settings/Input autodetects “ClockworkPI uConsole”, cool, but for example the yxba buttons are mapped to an unusable position at the lower left of the keyboard (a s z x) rather than the uConsole gamepad buttons. Any attempt to remap these keys adds a “(N/A)” when I push the yxba buttons.

Maybe if someone’s got the gamepad keys working perfectly they could take us through the process step by step. I know I’d definitely appreciate it and maybe others would too.

Bonus points: How do you set up the Nintendo Pro Controller for Port 2 (the left USB-C connector) as it also seems unresponsive although it is autodetected as well. Would be nice to have but getting Port 1 working is the main thing as the uConsole game pad should work standalone?!?

Thanks

---

<div class="post-metadata">

**Author:** ![white-round-square](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/white-round-square/32/10385_2.png) [@white-round-square](https://forum.clockworkpi.com/u/white-round-square)\
**Post date:** [August 23, 2025, 5:04pm UTC](https://forum.clockworkpi.com/t/how-do-you-set-up-the-uconsole-gamepad-buttons-for-retroarch/19377/2 "2025-08-23T17:04:09Z")

</div>

the very best option will be to install QMK firmware as it has “gamepad mode”

---

<div class="post-metadata">

**Author:** ![Rex](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/rex/32/16852_2.png) [@Rex](https://forum.clockworkpi.com/u/Rex)\
**Post date:** [August 23, 2025, 5:05pm UTC](https://forum.clockworkpi.com/t/how-do-you-set-up-the-uconsole-gamepad-buttons-for-retroarch/19377/3 "2025-08-23T17:05:31Z")

</div>

If you’re on the stock keyboard firmware then the direction pad and gamepad buttons are separate. If you look in the forms for the community made QMK firmware, they Incorporated a gamepad mode where you can set the direction pad to be a standalone gamepad with the abxy buttons.

---

<div class="post-metadata">

**Author:** ![z3r0fox](https://avatars.discourse-cdn.com/v4/letter/z/df788c/32.png) [@z3r0fox](https://forum.clockworkpi.com/u/z3r0fox)\
**Post date:** [August 23, 2025, 5:09pm UTC](https://forum.clockworkpi.com/t/how-do-you-set-up-the-uconsole-gamepad-buttons-for-retroarch/19377/4 "2025-08-23T17:09:23Z")

</div>

Ok, thanks! Link here for others

> [@QMK firmware for uConsole keyboard](https://forum.clockworkpi.com/t/qmk-firmware-for-uconsole-keyboard/14410):
>
> First release: 20240909 Download: [https://files.olly.xyz/qmk/clockworkpi\_uconsole\_default.20240909.bin](https://files.olly.xyz/qmk/clockworkpi_uconsole_default.20240909.bin) Initial working release Adds horizontal and vertical scrolling to the trackball (enabled by holding the “Select” key) Adds Fn+Esc key binding to enter bootloader This is beta firmware - please send feedback if you try it out! About This is a port of the original uConsole keyboard firmware to the [QMK](https://qmk.fm) open-source firmware ecosystem. QMK (Quantum Mechanical Keyboard) is an open source community…

This won’t disable the direction arrows for cursor movement otherwise I assume?

---

<div class="post-metadata">

**Author:** ![Rex](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/rex/32/16852_2.png) [@Rex](https://forum.clockworkpi.com/u/Rex)\
**Post date:** [August 23, 2025, 5:13pm UTC](https://forum.clockworkpi.com/t/how-do-you-set-up-the-uconsole-gamepad-buttons-for-retroarch/19377/5 "2025-08-23T17:13:30Z")

</div>

Make sure you read though the thread and get the newest one.

You have to switch the d-pad back and forth. Fn+g to toggle gamepad mode.

---

<div class="post-metadata">

**Author:** ![z3r0fox](https://avatars.discourse-cdn.com/v4/letter/z/df788c/32.png) [@z3r0fox](https://forum.clockworkpi.com/u/z3r0fox)\
**Post date:** [August 23, 2025, 6:07pm UTC](https://forum.clockworkpi.com/t/how-do-you-set-up-the-uconsole-gamepad-buttons-for-retroarch/19377/6 "2025-08-23T18:07:30Z")

</div>

Ok, got the flash in (after downloading the newest .bin and downloading and extracting the uconsole\_keyboard\_flash archive)

```bash
cd ~/Downloads
sudo ./uconsole_keyboard_flash/maple_upload ttyACM0 2 1EAF:0003 ./clockworkpi_uconsole_default.20250725.bin

```

I’m trying Super Metroid (SNES) as a test. The D-Pad works until I hit Fn-G, and the YXBA doesn’t work either way.

NOTE that in RetroArch there is a new Settings/Input/Port 1 Controls option, “Clockwork uConsole Keyboard System Control”. I selected this one instead of “Clockwork uConsole Keyboard”.

I then scrolled down to “A Button (Right)”, currently set to “x”, hit Fn-G to enter gamepad mode (this stops you from being able to scroll in RetroArch), hit Enter, then the A GamePad button. But no input is received and setting the keybind times out. 🤔

---

<div class="post-metadata">

**Author:** ![z3r0fox](https://avatars.discourse-cdn.com/v4/letter/z/df788c/32.png) [@z3r0fox](https://forum.clockworkpi.com/u/z3r0fox)\
**Post date:** [August 23, 2025, 6:19pm UTC](https://forum.clockworkpi.com/t/how-do-you-set-up-the-uconsole-gamepad-buttons-for-retroarch/19377/7 "2025-08-23T18:19:05Z")

</div>

Ok hang on. I put Port 1 back to the old “Clockwork uConsole Keyboard” and set the YXBA buttons so that they all read “(N/A)” after pushing the proper gamepad buttons for each of the YXBA settings and it works now. I did NOT try this on stock keyboard firmware, as I assumed the “(N/A)” additions in settings would not work. Would they have? The SELECT-mouseball scrolling is still a nice feature either way.

Confused. But it works without hitting Fn-G 🤷

---

<div class="post-metadata">

**Author:** ![white-round-square](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/white-round-square/32/10385_2.png) [@white-round-square](https://forum.clockworkpi.com/u/white-round-square)\
**Post date:** [August 23, 2025, 7:02pm UTC](https://forum.clockworkpi.com/t/how-do-you-set-up-the-uconsole-gamepad-buttons-for-retroarch/19377/8 "2025-08-23T19:02:27Z")

</div>

default implementation that cursor keys are keyboard cursor keys, but abxy are gamepad keys.  
because it’s a weird mix of KEYBOARD + GAMEPAD devices – it doesn’t work all the time.

`fn + g` switches cursor keys to gamepad mode so all buttons related to the same device now and therefore should be easier detectable by software.

there are tools like `xev` _(for x11)_ and `wev ` _(for wayland)_ to detect keyboard/mouse events, but they don’t catch gamepads.

for debugging gamepad you can try `jstest` or google `online gamepad test` and test via browser _(my preferred way)_

using `xev/wev` you can check difference between normal and gamepad mode

---

<div class="post-metadata">

**Author:** ![Peenak\_Inamdar](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/peenak_inamdar/32/6542_2.png) [@Peenak\_Inamdar](https://forum.clockworkpi.com/u/Peenak_Inamdar)\
**Post date:** [September 6, 2025, 11:47pm UTC](https://forum.clockworkpi.com/t/how-do-you-set-up-the-uconsole-gamepad-buttons-for-retroarch/19377/9 "2025-09-06T23:47:36Z")

</div>

Would you mind sharing a screen shot or the config file you are using? I can not get this to work for GBA games. I’m new to this so how all the pieces work together is very opaque to me.

---

<div class="post-metadata">

**Author:** ![DeRock25](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/derock25/32/7976_2.png) [@DeRock25](https://forum.clockworkpi.com/u/DeRock25)\
**Post date:** [November 23, 2025, 4:25pm UTC](https://forum.clockworkpi.com/t/how-do-you-set-up-the-uconsole-gamepad-buttons-for-retroarch/19377/10 "2025-11-23T16:25:15Z")

</div>

If you are not comfortable changing keyboard firmware, use AntiMicroX to just map whatever doesn’t work to a keyboard button.
