TomB19

joined 2 months ago
[–] TomB19@lemmy.world 1 points 1 month ago

The problem seems to be lack of ability to give the board a magic serial number. The vial app looks for a specific string in the serial number ("vial:") to identify a vial capable keyboard. My R75 won't accept a serial number, no matter what I do.

Apparently, this is a limitation of some cheap USB controllers (always answer 0 to all serial requests). I don't know if that's true but ChatGPT tells me it's so.

udevadm info -a -n /dev/hidraw$(ls /dev/hidraw* | tail -1 | tr -dc '0-9') | grep -i serial  2 ✘ ATTRS{serial}=="00000000000000000000000000000000" ATTRS{serial}=="0000:09:00.0"

Apparently, the magic number can be coded into the UID, also. I'm working on that, too, with no success so far. Apparently, USB controllers don't stand in for UID in any case.

I'm struggling with this. If anyone has some ideas or clear direction, I would consider it a favor. If I can manage to make it work, I'll publish the firmware for everyone.

Even if someone got the mossbed firmware to work, that would be helpful to know. I have been banging on it for three days with no luck. This is the most expensive, cheap keyboard I've ever purchased. lol!

 

My R75 works fine under via.

I'm using the R75 vial firmware located here.

https://github.com/mossbed/r75

It won't compile, as cloned. It's more than just the directory structure which is completely silly. It's not surprising it didn't work, given it's messy state. I had to modify it a bit, so it could easily be something I did.

I had to add a UID:

config.h -> #define VIAL_KEYBOARD_UID { }

and uncomment tap_dance_action in keymap.c.

tap_dance_action_t tap_dance_actions[] = { [TD_RESET] = ACTION_TAP_DANCE_FN(safe_reset), [TD_CLEAR] = ACTION_TAP_DANCE_FN(safe_clear), [TD_CTL_TG] = ACTION_TAP_DANCE_LAYER_TOGGLE(KC_RCTL, _CTL_LYR) };

That's about it.

It compiles and downloads cleanly. Via continues to work but Vial does not discover it.

This mosbed firmware extension claims to be a derivative of this work but it doesn't seem to be.

https://github.com/irfanjmdn/r65/tree/vialrgb?tab=readme-ov-file#guide

Anyone have Vial working? It's a popular keyboard so I expect someone has solved this problem. If no one responds, I'll take it on in a week or so so we can all enjoy ou R75 on linux with Vial.

[–] TomB19@lemmy.world 1 points 1 month ago

Thanks. He has the core done. It could have saved me some time. I'm quite a bit further along with auto discovery and a couple of minor conveniences.

If I can get it to install with a UDEV rule so it runs at user privilege level, it'll be all set and I'll push it into the AUR.

[–] TomB19@lemmy.world 2 points 1 month ago

Thank you. I really appreciate it, on both counts!

 

Like a lot of Chinese devices, my TEMPer clone creates two HID interfaces. This isn't how TEMPer is supposed to work but this unit is a knock-off. It was purchsed from Amazon and I tried to get an authentic part (Got from Amazon. The brand looked right and it wasn't the cheapest TEMPer, by far, but turned out to be a junky knock-off).

Right now, the app only works with root permission. I need to get it completely into the user space

Anyway, it creates two HIDRAW dev interfaces. The first one does not work. It responds on the second one. It always seems to show up on /dev/hidraw3 but I understand this cannot be counted on after re-plug, reboot, or other installs.

How can I create a udev rule that will allow my app to find the device (either scan with HIDAPI or libusb) and create symlink under /dev with user space access that my app can interface with?

Or, perhaps there is a better way?

I'm trying to write a driver that anyone can use with a knock-off TEMPer.

[–] TomB19@lemmy.world 3 points 2 months ago

I want to get one of the first implants possible. VR headsets are so unsightly.

[–] TomB19@lemmy.world 9 points 2 months ago