⌨️ HOWTO make Epomaker TH40 work with usevia.app on Linux (CachyOS)

This guide ensures the hardware communication pipes (/dev/hidraw*) are open and the correct protocol is used.

1. Set Permanent Permissions (udev)

Create a rule to allow the system to grant user access to the keyboard whenever it is plugged in.

Create the rule file

sudo nano /etc/udev/rules.d/99-epomaker.rules

Add this content and the save and exit

KERNEL=="hidraw*", ATTRS{idVendor}=="36b0", ATTRS{idProduct}=="304e", MODE="0666"

Apply the changes

sudo udevadm control --reload-rules && sudo udevadm trigger

Reconnect the keyboard

You must physically disconnect and then reconnect the USB cable connecting the keyboard in order for these changes to take hold.

2. Optional Temporary Manual “Emergency” Fix

If the udev rule fails or you are on a fresh system, run this to force the device nodes open:

sudo chmod 666 /dev/hidraw*

Note: For the TH40, VIA typically communicates on the second node (e.g., /dev/hidraw1).

3. VIA Web App Configuration

Go to usevia.app in a Chromium-based browser (Brave/Chrome).

  1. Physical Setup: Ensure keyboard is in Wired/USB mode (not 2.4G/BT).
  2. Settings Tab (Gear): Enable Show Design tab.
  3. Design Tab (Brush): * Toggle “Use V2 definitions (deprecated)” to OFF.
    • Click Load and select your TH40 JSON file.
  4. Configure Tab (Keyboard): Click Authorize Device and select the EPOMAKER TH40 from the popup.

4. Troubleshooting Checklist

  • “Invalid Protocol”: Usually caused by having the “V2 Definitions” toggle ON when it should be OFF (or vice versa depending on your firmware version).
  • “NotAllowedError”: This is strictly a Linux permission issue. Re-run the chmod command and restart the browser to clear the sandbox.
  • Kernel Logs: If the device isn’t seen, check sudo dmesg | grep -i "36b0" to verify which hidraw node it is using.

Leave a Reply