Multi-touch on Nook Tablet (5-touch)
Oct 30, 2012 4 Comments
Thanks mik_os and kuzma for the driver and kernel!
Updating your Nook Tablet touchscreen firmware required new multi-touch driver in the kernel.
If you run stock OS/cm7/cm9/10, it will mess up your touchscreen without the new multi-touch driver in the kernel.
You will need a new kernel with the new multi-touch driver.
Know that currently only cm10 support 5-touchs firmware. You need to the place 5-touchs firmware in the correct folders. You can run updatefw.sh from terminal or adb shell. If you do it in the terminal, you can use ‘Vol UP + w’ to bring back previous line so you don’t have to re-type. You want to update the firmware before using the 5-touchs kernel so you still have a functional touchscreen. Else, you have to use adb shell. If it’s successful you’ll know.
I am providing the SDCard boot version of Chris’s cm10-acclaim-0.06.1.
Don’t do this if you do not know what you are doing. It will cripple your device. This file includes the firmware and the script.
Place ‘ft5406-sc3052-1024X768.bin’ into /system/etc/firmware.
Copy updatefw.sh to your SDCard.
~: cd sdcard
~: sh updatefw.sh
Notice “VENDORID=“, if it’s just “VENDORID=” or “VENDORID=00“,
you need to repeat “sh updatefw.sh” until it’s “VENDORID=0xCD”
(Might require 7-20 times).
Notice “TPFWVER=” changes from “TPFWVER=13” or “TPFWVER=14” to “TPFWVER=0B“.
#!/bin/sh echo Starting WINTEKPANEL=1 FILENAME="ft5406-sc3052-1024X768.bin" NEWFWVER=0B echo "0xa8" > /sys/bus/i2c/devices/2-0038/wmreg FWID=`cat /sys/bus/i2c/devices/2-0038/wmval` echo "FWID=$FWID" VENDORID=`cat /sys/bus/i2c/devices/2-0038/vendorid` echo "VENDORID=$VENDORID" if [ "$VENDORID" = '' ]; then echo "VendorID error!" exit 0 fi TPFWVER=`cat /sys/bus/i2c/devices/2-0038/tpfwver` echo "TPFWVER=$TPFWVER" echo "Update firmware using $FILENAME from version $TPFWVER" echo "$FILENAME" > /sys/bus/i2c/devices/2-0038/fwupdate cat /sys/bus/i2c/devices/2-0038/calibrate cat /sys/bus/i2c/devices/2-0038/storecalibrateflash TPFWVER=`cat /sys/bus/i2c/devices/2-0038/tpfwver` if [ "$TPFWVER" = "$NEWFWVER" ]; then echo "Update to $TPFWVER success!" else echo "Update fail! Try again!" exit 1 fi