QMK firmware for uConsole keyboard

After flashing this on my uConsole running the latest Bookworm image everything works great. However, I just tried my other microSD with the RetroPie image and now none of the buttons work, other than the arrow buttons. I tried some of the SDL_GAMECONTROLLERCONFIG environment variable settings posted on the forums and they didn’t work. Pressing Fun+G just disables everything, pressing again enables at least the arrow buttons. I can do Alt+F4 to get a console prompt, but that’s about it.

I’d really appreciate any hints, thanks!

The keyboard works different with the QMK firmware so you’ll need to resetup the key bindings but first you’ll have to delete /opt/retropie/configs/all/emulationstation/es_input.cfg and everything in /opt/retropie/configs/all/retroarch/autoconfig/ then reboot and setup the gamepad.

1 Like

Thank you! I still have issues but I suspect my installation is faulty, I’ll debug some more on my end.

Found I also had to configure the controls from RetroArch and now everything is working perfectly, also managed to set up the LR buttons as L and R triggers. Thanks again!

Does this work on modules such as Radxa CM5? I am running a custom Debian image on the Radxa and keep on getting the “Failed to open serial device” message, despite turning off the system, removing the plug and batteries, and restarting. I’m trying to flash the 0922 firmware

If you read the previous reply, you will see that there is a similar solution to the problem. My solution is to open multiple windows, each window executes the same upgrade command, and each window builds about 1-3 seconds. If you’re lucky, there’s a window trigger update.

How did you do this? I also have no function in retroarch after pressing Fn+G. Where can I configure the buttons in retroarch?

Just tried again on terminal within Sway instead of KDE and it worked in the first try!

What worked? The Arrow keys and ABXY Buttons with the QMK Firmware installed after pressing Fn+G.

I’m not talking about the original keyboard firmware - this is no problem. But the second mode in QMK seems to do nothing here.

I’ve tried but only D-pad and ABXY were working. The others (activated by Fn + G) were not recogized. I guess it because RetroPie at first can only see “game mode type” keyboard. It cannot detect the normal mode after switching

Did you remove the stock controller configs? When you press Fn+G RetroPie needs to then be setup with that layout. I don’t think you can use them both at the same time.

I’m using the Retropie distro, but I imagine it would look the same elsewhere. From the Retroarch Main Menu, go into Settings > Input > Retropad Binds > Port 1 Controls and from there configure the keys for each relevant item (D-Pad Up/Down/Left/Right, B/A/Y/X Button, etc.). That’s all, after that the controls worked on all the emulators I tried (SNES, GB, GBA, Playstation).

I did. After rebooting, RetroPie prompt me to config gamepad. Then either I press Fn + G or not, it ends up failed. I’m gonna reflash your distro and make a fresh start. I’m not using uConsole for gaming but this issue makes me hard to sleep :joy:

how could you launch RetroArch? I had to configured gamepad from RetroPie first, but only D-Pad and ABXY works on mine at that step

I’ve successfully remap the keyboard for RetroPie image. The tricky one is I had to config RA input again after RetroPie. With X and Z key on the keyboard as A and B :joy:

One important note! If you flash the keyboard firmware it will not change when you reinstall the operating system. Both are independent.

So if you mess it up, you cannot repair it by installing a fresh system. You have to reflash the keyboard!

But it sounds like you got it to work anyway - great!

Yes I knew, but I’ve already mess up RetroArch itself. It hang up when starting RetroArch and I had no idea :joy: So I decided to do fresh install

I’ve succesfully uploaded 20240922 version and it works butterly smooth. Many thanks to your terrific work @olly.

Current problems I’m facing are:

  • /dev/ttyACM0 is gone, but if stock firmware is flashed back, ttyACM0 does return
  • Firmware was flashed whilst keyboard was connected to the uConsole with micro-USB-to-USB-A cable. Now whenever a devices is connected to USB-A port, keyboard is disabled. Only reboot can bring the keyboard back
  • I’ve copied the entire uConsole directory from here and succesfully compiled using qmk compile -kb some_directory/uconsole -km default, but the binary file will simply brick the keyboard, even though not a single line of code was changed.
1 Like

/dev/ttyACM0 is gone, but if stock firmware is flashed back, ttyACM0 does return

The serial port is a feature of the Arduino-based factory firmware. It isn’t needed for the keyboard/trackball/gamepad to function. The QMK firmware doesn’t provide one.

Firmware was flashed whilst keyboard was connected to the uConsole with micro-USB-to-USB-A cable. Now whenever a devices is connected to USB-A port, keyboard is disabled. Only reboot can bring the keyboard back

This is a symptom of a USB power protections kicking in. AIUI, the Pi cuts power to USB ports when it thinks they are drawing too much power. The keyboard is attached to an internal USB port, that’s why it gets killed too.

1 Like

Is there any solution to this USB power protection mechanism? I’ve also had frequent keyboard disconnects when an external USB device is connected.

1 Like