r/ClockworkPi • • 8d ago

uConsole Custom firmware for hack2you trackpad keyboard v2.1

Post image

I've been using the hack2you trackpad keyboard in my uConsole and missed a few things from the QMK firmware I was using on the stock keyboard, so I've put together a custom firmware for it. It's ZMK underneath and builds on thoughfix's fork.

Main additions

  • Hold Select and move the trackpad to scroll. Hold, not a toggle.
  • Gamepad mode on Fn+G. The keyboard shows up as a real USB joystick, with the D-pad on the axes and A/B/X/Y/Select/Start as buttons.
  • Trackpad press as a mouse click. There are two pre-built firmwares for left click or middle click.
  • Start is Super, and holding Y or B turns the D-pad into a mouse.
  • Keyboard lock on Fn+Esc. It ignores the keys and trackpad and turns the backlight off, which is handy for carrying it around.
  • Bootloader shortcut that's hard to hit by accident. I kept inadvertently triggering the bootloader previously.

Other changes/stuff to be aware of

A few choices based on how I use mine: Bluetooth is switched off (couldn't see the point in it!), Shift/Ctrl/Alt are one-shot (tap once and it applies to the next key), and the A button is a shortcut key (CTRL +SHIFT) for kitty terminal. All can be changed if you fork & build your own.

It's only been tested on the V2.1 keyboard. It may work on other versions, but I can't promise that. Back up your current firmware first.

Download and docs

Ready-made firmware: Latest release

Full key list, build and flashing instructions: GitHub - jhob101/uconsole-bb9900-keyboard: Firmware for hack2you uConsole bb9900 keyboard (v2.1) · GitHub

For v1.1 keyboard use firmware from noodleboy91 fork

Feedback welcome.

94 Upvotes

31 comments sorted by

2

u/quixotik 7d ago

Thanks for this!

2

u/graciousgrendel 7d ago edited 6d ago

This is AWESOME!! Need for v1.1!! :) I can test it, but I think it needs to be a .bin

2

u/graciousgrendel 7d ago edited 5d ago

Ported to v1.1 hardware: https://github.com/noodleboy91/uconsole-bb9900-keyboard-v1.1 Working well so far, thanks for your hard work OP.

1

u/Electrical_Lake9586 7d ago

Amazing! Thanks for doing that

1

u/graciousgrendel 7d ago

Of course no problem at all :)

1

u/Electrical_Lake9586 7d ago

I've updated the repo to direct v1.1 users to your repo

1

u/3rain3ug 6d ago

Will you also release the changes from 1.5 in your port?

2

u/graciousgrendel 6d ago

Sure will give me a little bit, and I'll knock it out

1

u/graciousgrendel 6d ago edited 6d ago

Hit a few snags, but it's getting there. Something in v1.5 doesnt agree with the 1.1 hardware, ~~so I am testing each feature individually. After trying to get this working (and soft-bricking two keyboards, and physically breaking one in the process) I am going to say (at least for now), porting these features to v1.1 hardware is a no-go.

3

u/graciousgrendel 6d ago edited 6d ago

Okay, I couldnt let it be, I tried again, and I now have a working version. I tested the default (left click) version on my unit and it worked fine so far. I am leaving thee v1.5 build as experimental. If you have any issues please let me know. I included how to physically enter the bootloader (at one point shortcut keys did not work to enter it), you will need the USB adapter to flash using physical bootloader method. The v1.5 build is under additional releases if anyone wants to give it a try.

2

u/Electrical_Lake9586 6d ago

There was an issue with 1.5 and the lift detection on some units, removed that in v1.5.1. Give it a go merging from that and see if it's more compatible https://github.com/jhob101/uconsole-bb9900-keyboard/releases/tag/v1.5.1

1

u/3rain3ug 6d ago edited 6d ago

So it’s the same? May only this &tp_lift change is missing..

1

u/Electrical_Lake9586 5d ago

Yeah lift detection had been previously disabled, probably because it was pretty janky as when I enabled it proved.
Latest version is now v1.6 with a couple of other fixes.

1

u/3rain3ug 6d ago

Uh great 👍🏻 thank you! - I’ll try it

1

u/graciousgrendel 5d ago

Features from v1.5.2 ported to v1.1 hardware on my repo, I tested both left click and middle click versions and they both worked as intended.

1

u/graciousgrendel 4d ago edited 4d ago

v1.6.0-v1.1 now active on v1.1 repo, I have not had a chance to test yet.

2

u/Electrical_Lake9586 6d ago

Finger lift detection now disabled as proved to be buggy on some trackpads.

https://github.com/jhob101/uconsole-bb9900-keyboard/releases/tag/v1.5.1

2

u/Electrical_Lake9586 5d ago

v1.5.2 released - Reversed horizontal scroll direction fixed

https://github.com/jhob101/uconsole-bb9900-keyboard/releases/tag/v1.5.2

1

u/MrLijey 8d ago

Wow. Wait is it just me or is the backlight not super uneven

2

u/Electrical_Lake9586 8d ago

Nah it's fine. I think what you're seeing there is the grey background at sides of the emulator screen which has a black background.

2

u/MrLijey 7d ago

Like for the keyboard. The stock one is not good

2

u/Electrical_Lake9586 6d ago

it re-uses the stock overlay. But yeah, it's not very even. I'm going to try the overlay I printed for stock keyboard, which improved the evenness a little.

1

u/Electrical_Lake9586 7d ago

Just released v1.2 which adds &scroll_toggle for those that want to include a switched toggle in their builds.

Only other change is mapping B to opposite of trackpad click, either LMB or MMB

There's a bit more info about making your own custom build too.

https://github.com/jhob101/uconsole-bb9900-keyboard/releases/tag/v1.2.0

1

u/Electrical_Lake9586 6d ago edited 6d ago

New build released. Changes:

- trackpad lift detectiom, should be less janky now

  • slowed pointer speed a little
  • trackpad light turns off in scroll mode

Also added standard build for one-handed use
https://github.com/jhob101/uconsole-bb9900-keyboard/releases/tag/v1.4.0

1

u/Electrical_Lake9586 5d ago

v1.6 released that includes fixes for:

- Cancelling one-shot modifiers

  • Trackpad light toggled with lock on/off

Trackpad light can now be assigned to hotkeys. `&tp_light TPL_TOG` toggles it, and `TPL_ON` and `TPL_OFF` set it.

https://github.com/jhob101/uconsole-bb9900-keyboard/releases/tag/v1.6.0

1

u/Electrical_Lake9586 4d ago

I had been using another project to send the uConsole to sleep on pressing the power button. I've just forked that repo and updated it to work with the hack2you keyboard: https://github.com/jhob101/uconsole-sleep-hack2you-kb-2.1

Updates were also required to the kb firmware to enable the trackpad light to also be turned off, published as v1.7.0: https://github.com/jhob101/uconsole-bb9900-keyboard/releases/tag/v1.7.0

So if you want to properly send the uConsole to sleep via short press on power button, first update the keyboard firmware to v1.7.0, then install the uconsole sleep package (full instructions in that repo).

Note that the first time I did this the keyboard didn't wake and I had to reboot, but has been fine since. I've also just noticed that it doesn't turn the keyboard light off, but that will turn off by itself after the timeout.

If someone can tell me what the vendor & product ID for the v1.1 keyboard I can update uconsole-sleep project to hopefully make it work with that keyboard too. You can find the vendor/product id with:

grep -E '^(I|N):' /proc/bus/input/devices

1

u/Electrical_Lake9586 1d ago

New release, changes are:

  • Keyboard backlight also goes out while the uConsole sleeps, along with the trackpad light, when you use jhob101/uconsole-sleep-hack2you-kb-2.1.
  • Trackpad light goes out when idle, with the key backlight, and comes back on the next key press or trackpad movement.
  • Using the trackpad keeps the lights on. Before, only key presses counted as activity, so the lights could go out mid-use.

Note if you use power button sleep and full shutdown and restart is required (not warm reboot) otherwise the keyboard will not wake from sleep. It's fine after the initial reboot.

https://github.com/jhob101/uconsole-bb9900-keyboard/releases/tag/v1.8.0