Jump to content

No multi-touch in hardware on X10?


Guest douginoz

Recommended Posts

Guest saltorio

Actually, there's alot of question regarding whether or not the X10 has hardware dual-touch support (no android phone has hardware multi-touch support yet). Sony stated on their Dev blog months back that the X10 didn't have multi-touch (used as a generic term) with 1.6 when it shipped, but would when it upgraded to 2.1. There have also been comments from review sites stating that they have gotten Dolphin running with pinch-zoom on X10s. The whole matter is muddy and confused.

You can join the calls for clarity here:

http://blogs.sonyericsson.com/products/201...arted/#comments

Or get more of a summary over at XDA:

http://forum.xda-developers.com/showthread.php?t=653536

Link to comment
Share on other sites

Guest The Hero

I think I'll live whether or not the X10 has pinch and zoom. I am more concerned with processor speed and whether or not all the apps I use will be compatible with 1.6

Link to comment
Share on other sites

Guest natalie1981_cutie
I think I'll live whether or not the X10 has pinch and zoom. I am more concerned with processor speed and whether or not all the apps I use will be compatible with 1.6

I can tell you that the processor is fast. As for the apps, haven't loaded any stuff yet aside from Astro File explorer and Draw. I'm not too worried about the apps working because the X10 WILL get Android 2.1 update but the real question is WHEN? Knowing Sony, I won't be surprised if it'll be next year. :P

Link to comment
Share on other sites

Guest The Hero
I can tell you that the processor is fast. As for the apps, haven't loaded any stuff yet aside from Astro File explorer and Draw. I'm not too worried about the apps working because the X10 WILL get Android 2.1 update but the real question is WHEN? Knowing Sony, I won't be surprised if it'll be next year. :P

Just got my X10. I am kinda underwhelmed when compared to my Nexus One, and I actually miss that multi-touch more than I thought I would.

Link to comment
Share on other sites

Guest Agility Luke
Just got my X10. I am kinda underwhelmed when compared to my Nexus One, and I actually miss that multi-touch more than I thought I would.

yeah, i got my SE X10i. Can I flash the rom to Desire? because that is much better than the 1.6 of SE x10.

it is very hard to find the hot key for the bootlog mode, can anyone help it?

Link to comment
Share on other sites

Guest The Hero
yeah, i got my SE X10i. Can I flash the rom to Desire? because that is much better than the 1.6 of SE x10.

it is very hard to find the hot key for the bootlog mode, can anyone help it?

I doubt a Desire flash is possible (at the time of this posting). That will change when the guys smarter than us root the device. In my experience with flashing Windows phones, iPhones, WebOS and Android Phones, once they crack that first door open, it's on.

At this point we just have to exercise patience for 2 things:

1.) The release of Andi 2.1 for this device

2.) The device being rooted.

Hopefully those two things happen soon, before this device's luster wears off.

Link to comment
Share on other sites

Guest saltorio
I doubt a Desire flash is possible (at the time of this posting). That will change when the guys smarter than us root the device. In my experience with flashing Windows phones, iPhones, WebOS and Android Phones, once they crack that first door open, it's on.

At this point we just have to exercise patience for 2 things:

1.) The release of Andi 2.1 for this device

2.) The device being rooted.

Hopefully those two things happen soon, before this device's luster wears off.

Just keep your eye on XDA's X10 forum to see how progress goes:

http://forum.xda-developers.com/forumdisplay.php?f=614

Link to comment
Share on other sites

Guest BigBearMDC

Hi guys

Me and a few others are trying to port MT to the T-Mobile Pulse aka Huawei U8220.

Have a look at this thread: Multitouch possible in theory?

If you got the kernel source you can check if the device is capable of MT following this steps:

  1. Find the touchscreen driver. It's in /drivers/input/touchscreen/synaptics[...].c (it's possible that your touchscreen driver is notfrom synaptics - just search for it).
  2. Find the "(synaptics_)ts_work_func" function.
  3. There should be a uint8_t array called buf. Usually (at least on our device) its 8 bytes large. Change it to be 15 bytes large (uint8_t buf[15]).
  4. Merge in these changes:
    static void synaptics_ts_work_func(struct work_struct *work)
    {
    int i;
    int ret;
    int bad_data = 0;
    struct i2c_msg msg[2];
    uint8_t start_reg;
    uint8_t buf[15];
    uint16_t x, y;
    uint8_t z;
    int32_t w;
    uint8_t finger;
    uint8_t gesture;
    uint8_t magnitude;
    static uint16_t last_x = 0;
    static uint16_t last_y = 0;
    static bool is_first_point = true;
    int x2;
    int y2;
    int finger2_pressed;
    struct synaptics_ts_data *ts = container_of(work, struct synaptics_ts_data, work);

    msg[0].addr = ts->client->addr;
    msg[0].flags = 0;
    msg[0].len = 1;
    msg[0].buf = &start_reg;
    start_reg = 0x00;
    msg[1].addr = ts->client->addr;
    msg[1].flags = I2C_M_RD;
    msg[1].len = sizeof(buf);
    msg[1].buf = buf;
    SYNAPITICS_DEBUG("synaptics_ts_work_func\n");
    //input_set_abs_params(ts->input_dev, ABS_TOOL_WIDTH, 0, 15, 0, 0);

    for (i = 0; i < ((ts->use_irq && !bad_data) ? 1 : 10); i++) {
    ret = i2c_transfer(ts->client->adapter, msg, 2);
    if (ret < 0) {
    SYNAPITICS_DEBUG(KERN_ERR "synaptics_ts_work_func: i2c_transfer failed\n");
    bad_data = 1;
    } else {


    //Here comes the important part:



    bad_data = 0;
    x = buf[3] | (uint16_t)(buf[2] & 0x1f) << 8;
    y = buf[5] | (uint16_t)(buf[4] & 0x1f) << 8;
    z = buf[1];
    w = buf[0] >> 4;
    finger = buf[0] & 7;

    x2 = buf[3+6] | (uint16_t)(buf[2+6] & 0x1f) << 8;
    y2 = buf[5+6] | (uint16_t)(buf[4+6] & 0x1f) << 8;
    int z2 = buf[1+6];
    int w2 = buf[0+6] >> 4;
    int finger2 = buf[0+6] & 7;

    //int dx = (int8_t)buf[12];
    //int dy = (int8_t)buf[13];
    finger2_pressed = finger > 1 && finger != 7;

    SYNAPITICS_DEBUG("x = %d y = %d z = %d w = %d finger = %d gesture = %x magnitude = %d\n",
    x, y, z, w, finger,gesture,magnitude);



    //And here we print out the values:

    printk("\nx %4d, y %4d, z %3d, w %2d, F %d, \n2nd: x %4d, y %4d, z %3d, w %2d, F %d",
    x, y, z, w, finger,
    x2, y2, z2, w2, finger2);



    if (z) {

    if (!finger2_pressed) {
    /* No multitouch -- force width to zero */;

    }
    if (finger2_pressed) {
    // You don't need this at the moment, it just makes things more complicated
    }

    /*
    * always report the first point whether slip or click
    */
    if (is_first_point) {


    swap(x, y);

    input_report_abs(ts->input_dev, ABS_X, x);
    input_report_abs(ts->input_dev, ABS_Y, 5880-y);
    last_x = x;
    last_y = y;
    is_first_point = false;
    }
    else {
    /*
    * except the first point, also report the following points
    * 1) x aixes is 3 larger or smaller than the last reported point
    * 2) y aixes is 3 larger or smaller than the last reported point.
    *
    */
    if ((( x - last_x) >= TS_X_OFFSET)
    || ((last_x - x) >= TS_X_OFFSET)
    || ((y - last_y) >= TS_Y_OFFSET)
    || ((last_y - y) >= TS_Y_OFFSET)) {
    swap(x, y);
    input_report_abs(ts->input_dev, ABS_X, x);
    input_report_abs(ts->input_dev, ABS_Y, 5880-y);
    last_x = x;
    last_y = y;

    }
    }
    }
    else
    /*
    * The next point must be first point whether slip or click after
    * this up event
    */
    is_first_point = true;
    swap(x, y);

    input_report_abs(ts->input_dev, ABS_PRESSURE, z);
    input_report_abs(ts->input_dev, ABS_TOOL_WIDTH, w);
    input_report_key(ts->input_dev, BTN_TOUCH, finger);
    input_sync(ts->input_dev);
    }

    }
    if (ts->use_irq) {
    enable_irq(ts->client->irq);
    SYNAPITICS_DEBUG("enable irq\n");
    }
    }
    [/codebox]


  5. Pull your .config off the device and compile the kernel with it.
  6. Create a boot.img with the ramdisk of your currrent boot.img (pull it off your device using adb).
  7. Flash the boot.img to your device.
  8. Boot up your device
  9. As soon as you can see the "enter PIN" screen, start an adb shell and run dmesg.
  10. Everytime you touch the screen you can run dmesg again, and it will print the output of printk() in the ts_work_func - so you'll be able too see if you get coordinates for the second touchpoint.

    The output of dmesg will look like this:
    [code]x 3442, y 1609, z 104, w 1, F 1, 2nd: x 256, y 0, z 0, w 0, F 0[/code]


  11. Have fun!

    Greetings,

    BigBear

Edited by BigBearMDC
Link to comment
Share on other sites

Guest saltorio

^ According to the specs I'm seeing on the web (http://www.product-reviews.net/review/20100216/huawei-u8220 , http://www.gsmarena.com/huawei_u8220-3144.php), the Huawei U8220 has a multi-touch capable screen. So the OS it's running may not be MT compatible but at least the hardware is.

Based on what SE has stated, the Xperia X10 hardware is not MT capable, so I'd be very surprised if there was any way to hack the software to make the device MT-aware.

Edited by saltorio
Link to comment
Share on other sites

Guest BigBearMDC
^ According to the specs I'm seeing on the web (http://www.product-reviews.net/review/20100216/huawei-u8220 , http://www.gsmarena.com/huawei_u8220-3144.php), the Huawei U8220 has a multi-touch capable screen. So the OS it's running may not be MT compatible but at least the hardware is.

Based on what SE has stated, the Xperia X10 hardware is not MT capable, so I'd be very surprised if there was any way to hack the software to make the device MT-aware.

I hope that's true, but I nearly don't believe it.

Even if your device doesn't support multitouch (by the way, no Android device does support mutltitouch at the moment) that doesn't mean it doesn't support dualtouch.

Your device will surely recognize it when you place 2 fingers on the screen, and if you patch the touchscreen driver like I told you guys to, you will see it yourself :P

I would do this for you, but unfortunately I don't own a X10.

Also, I think the kernel source hasn't been released yet, right?

If it has, just tell me were to download it and I'll patch the driver for you.

All you have to do then is to give me your current boot.img and your config.gz and I'll compile the kernel for you.

But you would have to flash the boot.img to your device then and examine the dmesg output.

Let me know if you guys want that.

Greetings,

BigBear

Link to comment
Share on other sites

Guest saltorio
I hope that's true, but I nearly don't believe it.

Even if your device doesn't support multitouch (by the way, no Android device does support mutltitouch at the moment) that doesn't mean it doesn't support dualtouch.

Your device will surely recognize it when you place 2 fingers on the screen, and if you patch the touchscreen driver like I told you guys to, you will see it yourself :P

Sorry, but based on SE's comments on the lack of hardware MT support, it looks like they went with the Synaptics Clearpad 1000 digitizer. This digitizer - according to Synaptics own docs - only supports single-touch.

Synaptics Clearpad

As such, there is no possibility of dual-touch (Clearpad 2000) or multi-touch (Clearpad 3000) capabilities in the hardware. Since I highly doubt SE would've made the oh-so-damaging comment that the X10 doesn't support any kind of multi-finger input if there was a chance they could work around that limitation, I have to believe that no amount of software tweaking is going to make it happen. Contrary to the belief that some people I've seen seem to hold, capacitive touch screens are not by definition MT-capable.

Even the HTC G1 used the Clearpad 2000 digitizer, though it took some tweaking before the software could take advantage of it.

Sorry.

Link to comment
Share on other sites

  • 4 weeks later...
Guest zendroid

Google still points here on multi-touch searches, so thought it would be nice to update with recent android multitouch info :D

(sorry for resurrecting this thread a bit off-topic from SE X10)

saltorio offered an informative post about touchscreen sensors above (tnx!):

...based on SE's comments on the lack of hardware MT support, it looks like they went with the Synaptics Clearpad 1000 digitizer. This digitizer - according to Synaptics own docs - only supports single-touch.

Synaptics Clearpad

...

Even the HTC G1 used the Clearpad 2000 digitizer, though it took some tweaking before the software could take advantage of it.

Sorry.

Indeed, if X10 uses a Synaptics ClearPad1000 sensor chip, that's restricted to single-touch, physically impossible to achieve dual-touch or multi-touch (no hacks or software upgrades could make it possible). If it has ClearPad2000, then a half-broken dual-touch would be possible in software, similar to Nexus One (watch the video link below to see what I mean)

vorcigernix is also correct, but careful with conslusion :P

I don't know about actual touchscreen which can't do multitouch. They just have Beavis and Butthead as speakers.

Yes, smartphone touchscreens offer multiple coordinates signal feed. HOWEVER, if the sensor chip receiving these signals can only decode into single-touch (cp1000) or brain-dead dual-touch (cp2000), then tough luck

The good news is that (fixed) dualtouch and true multitouch are finally coming to the android platform :-) but owners of early-2010 models will most likely be out of luck

1GHz/800x480-generation, early-2010 android models, with Synaptics ClearPad2000 sensor chipset:

- HTC-Google Nexus One (N1, limited direct N.America release + T-mobile) http://www.htc.com/www/product/nexusone/specification.html

- HTC Desire (international GSM 2G + HSDPA 3G sibling of N1, released in Europe & AsiaPac) http://www.htc.com/www/product/desire/specification.html

- HTC Legend (lower-end, slower 600MHz cpu smaller 320x480 HVGA screen) http://www.htc.com/www/product/legend/specification.html

Updated March/April 2010 US-carrier models, featuring new Atmel maXTouch mxt224 sensors, 8MP camera:

- released [HTC] Droid Incredible (on Verizon) B) http://www.androidcentral.com/complete-ver...edible-coverage

- upcoming [HTC] Evo 4G (on Sprint) B) http://www.engadget.com/2010/03/23/htc-evo...uperphone-armo/

On 2010-04-19, Android and Me and Android Central confirmed breaking-news multitouch sensor info !!!

(Android and Me) HTC Incredible and EVO 4G to feature new maXTouch sensors

Check-out this great video demo from Android Central, cool multitouch at work with maXTouch chip (HTC-Verizon Droid Incredible) side by side vs. "broken" ClearPad1000/ClearPad2000 (SE X10, HTC-Google Nexus One / HTC Desire)

(vs N1)

Finally, Engadget picking-up the screen sensor story a week later

http://www.engadget.com/2010/04/26/confirm...-is-better-than

:blink: So this is it! True multitouch released for the robotic masses :o

Such a clear improvement that many are wondering if SE or at least HTC won't quickly (1-2 months) release a X10+/Desire+ :huh: Guess that depends on manufacturing availability. As the HTC Droid Incredible is flying-off-the-shelves as I post this, HTC may have trouble keeping-up with demand just for the announced true multitouch gear!

Bottom line, multitouch upgrade certainly heading to future SE models as well, only question of time. Can't wait!

Edited by zendroid
Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.