Custom firmware for hack2you trackpad keyboard v2.1

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 @thoughtfix 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, includes pre-built releases for trackpad button as Left click, Middle click & ‘one-handed mode’.

Full key list, build and flashing instructions

For v1.1 of hack2you keyboard use the noodleboy91 fork. This is a fork of my project with modifications to work on v1.1 keyboard. Note that it’s not maintained by me.

Feedback welcome.

5 Likes

Heh, don’t use on the v1 bb keyboard. Need to find my usb to serial adapter now.

Woo! figured it out. Right ALT was mapped to the enter key. Flashed back to my backup.

Phew, glad you’re sorted!

Did it totally not work? Or were there just certain things that didn’t work?

Left Fn + Right Fn + \ also gets you to the `bootloader for future ref.

Bizarre right alt was mapped to enter.

Someone’s ported it to v1.1.

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.

How easy is this to flash the firmware.

Easy if you follow the instructions. Have a read and decide for yourself.

I need some form of deadzone for the touchpad, it starts creeping in random directions by 1px or so every second after I lift my thumb. Does modifying the pointer speed in the config fix this?

That’s weird, mine doesn’t do that at all. Sounds like touchpad could be faulty.

I was going to look at the trackpad function a bit, particularly stopping it moving during lifting finger. I might also do a build with speed knocked back a touch.

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

slower, proportional scroll:

Having some issues now with the v1.3.0+ firmware. Now it does not recognize my finger at all, unless i put something between the trackpad and my finger like a shirt haha.

I did find out that I still had the plastic film on the touchpad… I just took that off. Let me downgrade to 1.2.0 and see if its resolved.

EDIT:

Downgraded to 1.2.0, touchpad works way better now. Honestly it was super easy to miss that it had a plastic film on it. I no longer have the creeping I was having before. I’ve tried upgrading back to 1.5.0 and doing a full reboot (shut down, power back on after a few secs), but still experiencing the touchpad acting extra funky and not registering input all the time

I think it’s an issue with lift detection, which was originally disabled. i’ve removed it again in this release, let me know if it resolves the issue

v1.5.2 released - Reversed horizontal scroll direction fixed

2 Likes

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.

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: GitHub - jhob101/uconsole-sleep-hack2you-kb-2.1: uConsole Sleep service package · GitHub

Updates were also required to the kb firmware to enable the trackpad light to also be turned off, published as v1.7.0: Release v1.7.0 · jhob101/uconsole-bb9900-keyboard · GitHub

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

New release:

  • 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.

Could this also work under x86?

Since the keyboards are compatible i wonder

the keyboard is just a usb keyboard with pogo pins instead of a regular usb plug

Yeah, should work on anything as @snipeytje says. It’s just a usb device.