ASUS Transformer TF101 Problems

My ASUS Transformer TF101 started to have problems after the Android 4.0 a.k.a. Ice Cream Sandwich a.k.a. ICS update: occasionally, when sleeping, it can automatically switch on and go into a reboot loop, or switch on and get stucked in the ASUS boot screen; only log power button press, or, sometimes, long volume down button press, can “resurrect” the poor device. This could happen with or without dock being attached. The latest update to Android 4.0.3 (got it today in the night) did not fix the problem. Annoying.

Till today I have tried to do many things to it, but without much success. Today I have made some deeper investigations, and here is what I have found.

One thing is that the device is not really going to what is called deep sleep when going to sleep mode, as touching the mousepad would wake the device up, although pressing keyboard buttons would not. This behavior was not the present in Android 3, so I started to look for a solution. Found it on a few forums (have no links to them anymore, sorry):

  1. Go to Settings > Developer options. Confirm the Attention box by clicking OK.
  2. Enable the Stay awake option, so that its check-box is checked.
  3. Wait a few seconds (I, in fact, went out of settings and came back; just to be sure…)
  4. Disable the Stay awake option, so that its check-box is disabled.

Voila – mousepad is not waking the device anymore! To verify, go to sleep, wait some seconds (30?), and then touch the mousepad.

My speculation about what is happening here is that this option is in essence a 0/1 value, 0 being disabled, and 1 being enabled, but, for whatever reason, it gets some other factual value, e.g. -1, after the ICS update, which Android treats as “Oh! I should stake awake!”, while the Settings UI treats as disabled, e.g. because it performs a check for the value being exactly 1.

Also, there seems to be some evidence that NVIDIA TegraZone might have its fingers in the problem as well, as it is checking for updates every 12 hours, seemingly even when the device is sleeping. So, I have switched its auto-update off by:

  1. Start TegraZone
  2. Go to its Menu > Settings
  3. Switch Notifications off

Also, some people say that installing and enabling Auto Airplane Mode by DON helps reducing the symptoms or even eliminating this annoying problem. I have used it on my Transformer since the beginning, and, obviously, it was not helping on its own; but then, again, I believe that it might help in some cases, and it is not hurting to have it anyway: it is automatically enabling the airplane mode when the screen is turned off/put to sleep, thus preserving the battery when you are not using your device. I do not understand why Google did not put this function directly into Android, to be honest.

So far I did have not seen any unexpected reboots, but it is too early to say for sure – they were not happening every day.

UPDATE 2012-03-25 Well, five days went since my “fixes”, and so far so good. CPU Spy shows that the device really goes into the deep sleep mode, and I do not get reboot loops anymore. Battery seems to last OK too. To be honest, once there was a problem that I could not wake the device up from sleep, but rather it booted, but it might just as well be my problem, if I have earlier put the device down so that its Sleep button was pressed and thus it switched off completely. BUT! Today that fucking motherfucker (no other words apply here, I am afraid) again went into automatic boot and stucked at the ASUS boot screen. Fantastic! Nevertheless, five days is much more than before, so it seems that these “fixes” fix at least some part of the problem.

PerfView: Performance Analysis

Microsoft rather quietly has released PerfView“a performance analysis tool focusing on ETW information (ETL files) as well as CLR memory information (heap dumps). It can collect and view ETL files as well as XPERF CSV files. Powerful grouping operators allow you to understand performance profiles in ways other tools can’t. PerfView is used internally at Microsoft by a number of teams and is the primary performance investigation tool on the .NET Runtime team.” Found it by accident, while reading an article about performance improvements in Visual Studio 2010 that mentioned Publication of the PerfView performance analysis tool!

It is in a functionality way related to the CLR Profiler that “allows developers to see the allocation profile of their managed applications.” Both tools are useful in optimizing memory usage, except that PerfView is supporting also native and mixed applications.