Software
The Epomaker TH40 offers VIA support, which automatically makes it better than most Epomaker keyboards in my books for software customization. Epomaker has always had good hardware for the money, it's the software and firmware support that has kept a lot of its keyboards from really appealing to everyone. With the TH40, you get VIA support for not only the USB mode, but also for 2.4 GHz mode. There are JSON files for either connectivity modes available to download towards
the bottom of the product page, meaning the keyboard isn't automatically detected by VIA. Note also that you need to enable the V2 definitions, meaning Epomaker is relying on an older VIA build here—this will be important shortly. Regardless, you can go to the
online VIA configurator or download
the latest release off GitHub if you want to have something installed on your PC. I've tested both approaches and they work the same, although the installed program can be slightly faster with more complex firmware loadouts and saves. Load the JSON file and VIA will request access to the keyboard via a pop-up, as seen above, following which the configuration will load immediately.
Anyone who has used VIA before already knows what to do, although I will
point to this video which will work as a decent tutorial/starting point for those new to the experience. The video above also quickly walks through using the TH40 with VIA, including with the various layers on offer as well as the extensive key mapping options. The base layer and the next one (Fn layer) come fully pre-configured by Epomaker, although you can remap them, allowing two spare layers to do anything you wish thereafter. This includes extensive key assignment options, macro recording/editing, as well as control over the LEDs on the PCB. The keyboard, with VIA, also has a lot of lighting effects, but this is where some hassles come in. Clearly VIA is not recognizing the LEDs as those associated with switches, instead thinking they are for underbody lighting. This brings with it errors because the real time changes made work as advertised on the keyboard, yet VIA can't compute what is exactly is going on and pulls up error notifications by the dozens. There's also the part where we don't get per-key RGB control, or even the ability to choose the specific color out of the 16.8 M on offer. I have discussed this issue with Epomaker, who then asked for some more information/testing/files from my end. The consensus is that the JSON file is outdated for the current VIA iteration, and there will be a newer JSON file available shortly. Epomaker also says you should only use the newer file if this issue is happening to you, as seemingly this is not a common occurrence. This is the only reason I am cutting them some slack, else it would have been a sign of a product being released and then forgotten about by the R&D team a few months down the line.
[Update (Nov 14, 2024): Epomaker has the updated JSON file ready for anyone with the same issue.]