⌨️ 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", TAG+="uaccess"

Apply the changes

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

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