HTC Touch HD – Fix for Device Not Vibrating

HTC Logo I’ve been using an HTC Touch HD for a while now and I am really happy with it. I purchased it in a not-so-successful transaction (see details here), but after a rough start, the device itself was just excellent. The high resolution screen is bright, clear and gorgeous looking; the device’s performance is just great, I’ve only had two issues so far with it and one of them I already knew from before I purchased it. Here’s what I’ve found so far…

The first issue is at&t’s lack of support for all 3G bands and the HTC Touch HD’s lack of support of the 3G bands used in the US. I already knew this when I bought it, and sometimes it is a bit frustrating having to wait for some pages to download. But, hey, I knew I would be going back to Edge when I bought my HD. It’s a pain in the neck, but I was willing to drop 3G in exchange for everything else the device has to offer. I still do. I am not going to get into the argument of why a carrier chooses not to support one of the available bands or why a manufacturer will not release the same device on different continents… too many variables come to play, and frankly the manufacturer is still at the mercy of what the carriers want to release within that particular device. The more configuration options the manufacturer offers the carriers, the more likely the carrier will use and support a device with positive results. On the other hand, I think that the unlocked version that is sold on the market, should have included all 3G bands so that no matter where you try to use it, it will work as intended.

Finally the second issue that kept popping up every now and then was that after some heavy usage, I would have the vibrating feature stop working both when replacing the regular ringtone and when pressing some of the buttons, including the device’s hardware buttons for picking up, hanging up a call, home and the back/cancel/OK button. I must say this issue was starting to drive me crazy. Setting a phone to vibrate is such a basic feature.

Read on to see the solution for this.

I did try everything in Touch 3D’d interface, I obviously started with the regular settings to make it vibrate… nothing worked. Went directly to set it to vibrate in Windows Mobile settings (what Touch 3D links to as “advanced”)… didn’t work either. Clean reboot… same thing. Sometimes it worked, and others it just didn’t. If it was a software issue, I was not able to narrow it down or even find a specific pattern that would hint under what exact conditions it would work and which it wouldn’t. After a very tedious search on the web, I came across too many forums and blog posts that simply described this issue as “just another hardware issue, don’t bother trying to fix it”. I could not give up. This couldn’t be a hardware issue… I refused to believe the information I had in front of me. HTC’s website did not even mention a bit about this issue. There were some reports on the web that people had sent their devices to HTC tech support and after receiving a new/refurbished one had experienced exactly the same thing. In my mind this could mean that there was a serious hardware flaw in the design (which I could not see in such a well crafted device) or there was a software issue. I was already invested in finding the solution for this issue…

I simply refused to admit defeat and went on a chase for fixing this issue.

Anyway, I still had my other commitments (work, baby, wife, etc), so I organized myself to do some very systematic testing without having to do a hard reset. You see, I was willing to spend some spare time in testing (following a very specific test plan that included all applications I had on my device), but I didn’t want to simply hard reset see it would work and after installing everything again find out that this issue would creep up again. I needed to know how to resolve it instead of having to reinstall everything every time it would show up.

My test plan went from software that runs in the background to regular apps. My first programs to test were my bluetooth keyboard drivers (I installed the drivers that came with the keyboard instead of using the ones that came with the device). It wasn’t the problem. Additional G-sensor software, not the problem. Custom connectivity (WiFi) tools, not the problem. Every now and then, vibrate would engage and I would leave it that way for a few days or phone calls, but unfortunately it would fall back into not working after a while. This was starting to get old…

Eventually I got to an application that has been working fine but I’ve had to tweak after installing. It’s called “Gyrator 2”. This is an app that can run in the background to auto-rotate the screen on the apps where there is no auto-rotation feature, especially older apps. In the past, I had to tweak Gyrator 2 to detect when the phone was ringing and prevent itself from trying to rotate. This was because every time I took my phone from my pocket and tried to answer it, the screen would be attempting to rotate and I would press on wrong side of the screen making me spend some extra time before answering or even missing a call here and there. This got me thinking that maybe if this application was delaying the event by sitting in between the hardware event and the actual execution of this event itself, that maybe there was a way around it. I looked into Gyrator and found a “vibrate” option but there was no documentation on whether this would allow other vibrate requests to “pass-through” or just replace them… Now armed with this I started testing Gyrator 2 and whether it would be an app I would have to remove altogether or if I would be able to use it with my device.

After a deep dive into Gyrator 2, I can now confirm that it looks like when the “vibrate” option in Gyrator was unchecked; the vibrating function would work sometimes, but most of the time it would not work at all. Fortunately, when “vibrate” is checked in Gyrator 2, the phone vibrates on ring and every button press where it is expected to vibrate, it does.

The detailed fix steps are:

  • Open Gyrator 2, go to “Menu”, click on “Events…” Gyrator2-2Gyrator2-1
  • Select the event you want to edit. In my case one of them was “Disable (Phone – Incoming)”. Pop up the menu on the event you selected and click on “Edit Event”.
  • Under the “Actions” tab, you must make sure to have “Vibrate” checked. Exit by clicking on “Apply” and click again on “Apply”. “Minimize” Gyrator and test it by receiving a call (for this event).

About Diego Samuilov

Editor in Chief/Founder Diego Samuilov is an executive, consultant, IT strategist and book, e-book and web published author. Diego has worked in Microsoft’s environments since 1990. Since then, he has successfully filled many positions related to the Software Development lifecycle. Having worked as a developer, analyst, technical lead, project lead, auditor and, since 1996 a project manager, manager, director and VP in the Software Development, Server, Desktop and Mobile environments. Diego is very passionate about the software development process, which has played a great part in his skills development. Since the introduction of the first ever PDA (the Apple Newton MessagePad) in 1994 and Windows CE in 1998 he has pioneered and pushed the envelope in the field of mobile software development. He has developed many solutions used in mobile markets, desktop and server environments. He participates in public and private developer community events. He actively collaborates with the community at support forums and blogs. Diego is the author of "Windows Phone for Everyone" available [HERE].