Thanks to Android mini PCs, it’s now very easy and cheap to run Android on your HDTV, but most of the time touchscreen functionality is missing. There are already full products such as AIO Android PCs, and Smart Displays that brings Android to large display with touchscreen, and PQ Labs iStick A200 HDMI TV stick supports directly their overlay touch frames so you can “touchscreenize” your TV with their mini-PC and correct frame connected via USB. If you’d rather use another model of infrared touch frame for your TV and own Android device, Hardkernel has just explained how to do in the February edition of ODROID magazine using their ODROID-XU development board.

In the magazine, they explain some details about the difference between capacitive and infrared touchscreens, and provide instructions to choose the right IR touch frame, how-to modify the software if necessary, and how to connect the touch frame to the monitor. I’ll provide a summary of the practical step, but you can check the article for more details.
Selecting an IR Touch Frame
Let’s get started. First you’ll need to choose an IR touch frame that support your operating system, in this case Linux / Android. There are basically three possibilities:
- If your touch frame is listed in the Linux multi-touch compatibility table, it should just be plug-n-play, unless the Linux kernel is not built with HID multitouch support (See step 3 in the next section).
- If your touch frame is Windows 8 compatible, it can also be supported after some changes in kernel drivers and input configuration files
- Your touch frame comes with specific Android drivers, and the source code is available, you should follow the manufacturer’s instructions.
Hardkernel could not easily source a Linux compatible touch frame locally, and some Chinese touch frame did come with open source drivers that were not really usable. So they chose a Windows 8 HID-compliant Plug & Play touch frame.
Software Configuration for Windows 8 Compliant Touchscreens
Four steps are involved in making a “Windows 8” IR touchscreen works with Android:
- Get the vendor ID and product ID in a Linux or Windows PC.
In Linux, you can use lsusb command in a terminal before and after connecting the touch frame to read the USB PID & VID from a line looking like:
1Bus 002 Device 073: ID 03fc:05d8 Elitegroup Computer Systems
In the case above, the VID is 03FC, and the PID 05D8 for a 23″ touch screen from Elite Computer Systems. The 42″ overlay touch screen used in the picture above is manufactured by Nexio Co. Ltd with VID:PID: 1870:0119.In Windows, you’d have to go to the Device Manager to find the VID / PID for the frame.
- Modify HID drivers in Linux
You’ll need to edit drivers/hid/hid-ids.h in the kernel source code and add your touch frame VID & PID. For example:
123/* Elitegroup Computer Systems */#define USB_VENDOR_ID_ELITEGROUP 0x03fc#define USB_DEVICE_ID_ELITEGROUP_TOUCH 0x05d8
/* Nexio Co., Ltd */
#define USB_VENDOR_ID_NEXIO 0x1870
#define USB_DEVICE_ID_NEXIO_TOUCH 0x0119
#endifYou’ll also need to add your overlay touch screen to the mt_devices structure in drivers/hid/hid-multitouch.c. Using the example above:
123456789101112static const struct hid_device_id mt_devices [] = {/* Elitegroup Computer Systems */{ .driver_data = MT_CLS_DEFAULT,HID_USB_DEVICE(USB_VENDOR_ID_ELITEGROUP,USB_DEVICE_ID_ELITEGROUP_TOUCH) },/* Nexio Co. Ltd */{ .driver_data = MT_CLS_DEFAULT,HID_USB_DEVICE(USB_VENDOR_ID_NEXIO,USB_DEVICE_ID_NEXIO_TOUCH) },/* 3M Panels */ - Configure and build the kernel with HID Multitouch support
Type make menuconfig, and go to Device Drivers->HID Devices->Special HID Drivers->HID Multitouch panels (CONFIG_HID_MULTITOUCH), and enabled as a built-in driver (*), not a kernel module. Do the same for Device Drivers->Input device support->Touchscreens->USB Touchscreen Driver (CONFIG_TOUCHSCREEN_USB_COMPOSITE) and Device Drivers->Input device support->Touchscreens->GeneralTouch Touchscreen device support (CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH)Save, type make to build the kernel for your target, and flash it to your board or device. - Create an IDC (Input Device Configuration) file
Input device configuration files (.idc
files) are Android specific files that contain device-specific configuration properties that affect the behavior of input devices. You’ll need to create a file using the VID & PID of your frame(s), and copy them to /system/usr/idc/ in your Android device. Using the previous example: Vendor_03fc_Product_05d8.idc and Vendor_1870_Product_0119.idc.The article in ODROID magazine does not mention the content of the file, but according to a forum thread on Freaktab, it should be something like (including an extra white line):
12touch.deviceType=touchScreendevice.internal=1
Now you can reboot your Android device, and the software setup is complete.
Touchcreen Assembly
The final step is to attach the touch frame to your TV. Hardkernel provides some pictures in the magazine to show how to do, but basically you need to put strong double sided tape or velcro to the touch frame, align it to your TV screen, and press the frame against the TV for a good fit.

There are at least two kinds of infrared touchscreens: Overlay touch frames and integration frames using PeauProduction’s “jargon”. The former ones come with a glass, and the latter ones are without glass, with smaller bezel, lighter, and cheaper, but requires a little more steps to assemble. They are also cheaper to ship due to the lighter weight.
I’ve looked in to the price for this type of item, and there’s basically nothing on Chinese websites except for 15″ and 17″ monitors, and generally speaking larger sizes seems hard to find. The only options I’ve found are the NEXIO touchscreen used by Hardkernel for 32″ to 71″ TVs, and PQ Labs frames for 32″ to 84″ TVs. Both companies can also provide custom frames over 100″. I could not find where to buy NEXIO products, but PQ Labs are available via PeauProductions. The 42″ overlay touch frame sells for $582, and the 42″ integration kit for $480. not including shipping.
[Update: I did not look enough… There’s a 32″ IR touchscreen with two touch points support on Aliexpress for $164 including shipping, and larger ones, e.g. 50″, for $450 also including shipping (6 touch points), and many more from DEFI touch system on Aliexpress. Having said that, I don’t really recommend buying this type of device, a if something goes wrong shipping costs may not make it worthwhile to return].

Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress