Home > Android, Hardware, Linux, Samsung Exynos > How to Convert Your HDTV into a Massive Touchscreen Enabled Android Tablet

How to Convert Your HDTV into a Massive Touchscreen Enabled Android Tablet

February 11th, 2014 Leave a comment Go to comments

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.

Minecraft_on_42_inch_touchscreen

Playing Minecraft with ODROID-XU Connected to a 42″ Monitor. Source: Youtube

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:

  1. 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).
  2. If your touch frame is Windows 8 compatible, it can also be supported after some changes in kernel drivers and input configuration files
  3. 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:

  1. 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:

    Bus 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.

  2. 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:

    /* 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
    #endif

    You’ll also need to add your overlay touch screen to the mt_devices structure in drivers/hid/hid-multitouch.c. Using the example above:

    static 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 */
  3. 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.
  4. 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):

    touch.deviceType=touchScreen
    device.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.

23" Monitor and Overlay Touchscreen

23″ Monitor and Overlay Touchscreen

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].

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

  1. onebir
    February 11th, 2014 at 16:55 | #1

    I can see how this could be useful in commercial environments (eg interactive information displays) but are there really any home uses where this is better than mirroring and controlling from a tablet? (Or even an air mouse?)

  2. February 11th, 2014 at 17:13 | #2

    @onebir
    For some applications, I think it’s more fun and immersive to be close to the screen and play with hands, instead of using a remote or tablet. The price may limit household penetration however, so you’re right that it’s more likely to be used for digital signage applications and such.

  3. newmiracle
    February 12th, 2014 at 02:29 | #3

    I wish more of these places would be better about letting people know the number of touch points. Searching for 10-point touch can be a hassle.

    Also, that being said, anything more than 5 touch points for an overlay seems to be cost prohibitive at the moment. At almost any size, it seems way more worth your time and money to just buy a pre-existing 10-point monitor.

    If someone wants to prove me wrong, please let me know. I’d be interested in a solid, affordable 10-point overlay.

  4. armer
    February 12th, 2014 at 05:58 | #4

    @newmiracle
    I agree if the target size is 22 ~ 24 inch, HP or Dell has some touch enabled monitors with reasonable price range. But if it is bigger than 30 inch, we need to consider an overlay kit type like that magazine.

  5. February 12th, 2014 at 10:21 | #5

    @newmiracle
    The DEFI shop on aliexpress sort displays by the number of touch points. Price for 10 touch points frames start at $300 for 32″.

  6. yshadey
    March 27th, 2014 at 00:21 | #6

    Do you know if this works with touch foils?

  7. March 27th, 2014 at 13:00 | #7

    @yshadey
    If these connect via USB, it should just work the same. You’d still have to check the 3 categories isted in this post (Linux compliant, Windows 8 compliant, or with extra drivers).

  8. March 27th, 2014 at 14:00 | #8

    3M has recently released drivers for some of their touchpanels – http://linuxgizmos.com/3m-android-linux-drivers-huge-touchscreens/

  1. No trackbacks yet.