QMK firmware for uConsole keyboard

First release: 20240909

Download: 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 open-source firmware ecosystem. QMK (Quantum Mechanical Keyboard) is an open source community centered around developing computer input devices. The community encompasses all sorts of input devices, such as keyboards, mice, and MIDI devices.

Installing

Pre-requisites:

  1. Install dfu-util (sudo apt install dfu-util)
  2. Download the stock ClockworkPi keyboard flashing tools (if your keyboard is on stock firmware) https://github.com/clockworkpi/uConsole/raw/master/Bin/uconsole_keyboard_flash.tar.gz
  3. Download the firmware binary from the link at the top of this post

If you’re on stock firmware, QMK can be installed using the stock flash tools:

$ sudo ./maple_upload ttyACM0 2 1EAF:0003 clockworkpi_uconsole_default.20240909.bin

To upgrade from an older QMK firmware, use the following command and hit Fn+Esc when you see the “Waiting for device” prompt.

$ sudo dfu-util -w -d 1eaf:0003 -a 2 -D clockworkpi_uconsole_default.20240909.bin -R

Code

Source for the firmware can be found in my QMK fork on GitHub. The keyboard config can be found in the keyboards/clockworkpi/uconsole directory.

Disclaimer

I’m not affiliated with Clockwork in any way. This is beta software and I can’t offer any guarantee that it works. You take all responsibility if you brick your keyboard using this firmware.

16 Likes

Release: 20240910

Download: http://files.olly.xyz/qmk/clockworkpi_uconsole_default.20240910.bin

Changes

  • Make Fn+Arrow bindings match stock firmware
  • Adds Gamepad mode
    • Gamepad mode can be toggled by Fn+G
    • Gamepad mode re-binds the arrow keys to d-pad buttons
  • Make volume key behavior match stock firmware
  • Change the bootloader binding from Fn+Esc to LeftAlt+RightAlt+Start
    • This is to avoid accidental activation
3 Likes

Great effort and I am ready to try this firmware. But I still have a question, if I brush and don’t continue to use it, how can I restore the official firmware and use the official refresh method?

The dfu-util command above can be used to restore the original factory firmware (which you can compile using the Arduino IDE and the instructions in the GitHub - clockworkpi/uConsole: This code repository offers downloads for the latest images of various uConsole models, along with kernel patches, firmware for the keyboard and 4G expansion module, hardware schematics, assembly instructions, and essential technical documents. repo).

1 Like

Release: 20240915

Download: http://files.olly.xyz/qmk/clockworkpi_uconsole_default.20240915.bin

Changes

  • Switched debouncing algorithm – fewer repeated or stuck keypresses!
2 Likes

Release: 20240922

Download: https://files.olly.xyz/qmk/clockworkpi_uconsole_default.20240922.bin

Changes

  • Added Fn+Esc keyboard lock function, matching factory firmware.
4 Likes

Nice work, I’m going to try this later.

Could I ask about the possibility of using the Rollerball press as the left click instead of middle click?

1 Like

Right now, the best way to customize the layout is to fork the GitHub repo (linked above), edit the config in keyboards/clockworkpi/uconsole and build a new firmware. The mouse buttons are part of the keyboard layout so it’s (relatively) straightforward to remap them.

Interesting, this FW has a much smoother trackball algorithm. But unfortunately also quite a big mouse delay.

This firmware worked much better than the GitHub packaged firmware, and solved a lot of the unbound key issues I was having. Great contribution to the device!

3 Likes

I really like this FW a lot! It fixes my trackball issues, and makes it butter smooth!

Everything else also works well so far, apart from one thing: The game pad buttons are not recognized as a game pad in Steam over Moonlight. If someone working on this project can get that to work it would be great!

I only got it to work with workarounds as described here: Uconsole Gamepad as Gamecontroller for Moonlight

But if it would identify directly as some sort of a standard game controller that would be great.

did you try (FN+G) to switch the function of them from arrow keys to d-pad?

Yes, unfortunately in that mode it still doesn’t get recognized. But the virtual game pad created by input-remapper does get recognized.

input-remapper creates a game pad with all axes and buttons, maybe that’s what triggers Moonlight to use it.

I’m trying to install this QMK firmware on my uConsole but I’m getting these errors:

Failed to open serial device.
dfu-util: No DFU capable device available

What I’m doing wrong?

I had this problem going from stock to the 0909 firmware. Fixed it by opening the uConsole and taking the batteries out (my guess was powering off/rebooting wasnt enough to fully restart the keyboard module).

Powered up, 0909 installed and then upgraded to 0922 as per OP. All good.
:slight_smile:

ps select+trackball to scroll is amazing. Thanks @olly

I had the same problem, and finally found out that it was probably the firmware upload, the device went into DFU slower than expected, and the device was still in non-DFU mode when the upload was required. You can try to open multiple terminal windows at an interval of x seconds, which is similar to parallel execution. With any luck, I opened two terminal windows and tried three times, and one of them triggered the update properly.

Thank you, it worked! I taked the batteries out for a few mins, then put back, booted to the OS and flashed from latest stock directly to QMK 20240922.

Tiny change for any Sway users. This maps joypad A to Win, and joypad B to Shift.
Fn+g should remap buttons back to gamepad but I can’t test it with anything but ‘cat /dev/input etc’, but that does create ‘output’.

Dropbox

Time to move that $mod+Enter
:slight_smile:

ps Massive Kudos to @olly for doing all the real work :+1:

1 Like

Oh my - I tried this and possibly bricked my keyboard…

I started by flashing your sway modified keyboard binary using “maple_upload” as described in the first post since I was on the stock firmware still. There I encounterd an error and the new upload was possibly not done correctly. No button press or mouse movement is now possible with the keyboard.

/dev/ttyACM0 is also gone, my suspision is, maple_upload will now no longer work. Trying to upload the firmware again using dfu-util gives me “Waiting for device, exit with ctrl-c” which means I should press fn+Enter. But since no keypresses are registered I cannot.

I need some help here - how can I recover?

To get the keyboard into bootloader mode its Lalt+Ralt+Start, but you have to hit them all at the same time, and that’s only if the QMK firmware installed.

I had problems with my first install of new firmware and taking the batteries out and putting them back let me run the maple thing again (4 screws).

There’s also the option of taking the keyboard out (6 screws), plugging it in to the uconsole (if you can ssh in) with a micro-usb cable (or another linux machine if you have one), and putting it into bootloader mode by bridging the board contacts marked ‘sw1’ on the back of the board (i had to do this when I was testing and screwed up the key combo for dfu bootloader).

ps does the keyboard backlight still respond to Fn+Space?
pps for clarity when i say bridge the sw1 contacts i mean briefly with a metal object, not soldering them. Just in case anyone is super-new to this.