Monday 12 March 2012

Notebook volume button issue

I have a basic philosophy about old computers - "If it can still run Windows 95, it's still worth something to someone."

Unfortunately this has resulted in my house looking rather like an elephant graveyard, if elephants were old XT's with CRT monitors for heads and PS2 keyboards for legs.
Whenever I move I manage to throw some of it away, but for some reason I've never been able to bring myself to throw out a laptop. (Forget about selling, if I can sell it, it means someone can use it and I'd prefer that someone to be me - so either it's FUBAR, or it's mine!)

Which brings me to the point of this particular topic - I have a very old HP nx9110 laptop (bought around 2004), but it's still a beaut.  15.4" display, P4, 3.0 GHz, 1.5Gb RAM.  I bought some cheap power supply from 'alternative sources' for it when the cable eventually frayed off the original two years ago, so other than losing the ability to charge the battery and having a power supply that threatens to burn its way back to Taiwan through my teak parquet floor if left on too long - it works like a charm.

A while ago I fired it up to work in bed because I was sick.  Everything went fine until I stopped working and decided I wanted to watch movies instead.  Damn, no volume!

TroubleShooting 101: HP Compaq NX9110 - no volume
So I check the Volume by clicking once on the taskbar speaker icon in Windows XP...The volume is set to zero. 
Duh. 


I drag the volume to MAX, hear satisfying "DING!" from Windows and then watch in amazement as the bar proceeds to slide itself back to zero. 

What the...

I drag it up, "Ding!", it slides back down by itself.
I try the hardware “Volume Up” button on the side of the laptop - nothing.  Then I notice every time I push it, it toggles mute.  The mute button also still toggles mute. 
I open audio properties and drag the slider there to max volume - "Ding!", then it slides back down.
I drag it up again but this time, as it starts sliding back down, I quickly push and hold the hardware “Volume Up” button and it stops mid-slide!  I let the button go and it continues its descent.  Push the button again and it stops.
Ok, so clearly there's something somewhere sending this volume down which the Volume Up button cancels, provided it’s held in.  Troubleshooting begins in earnest;

TroubleShooting 2.0:

16 gazillion Ctrl+alt+del solutions in my past have burnt certain synapses in the brain, so first order of business is a reboot.  Problem persists.
I disable, enable, then reinstall audio drivers.  Same story.
I reinstall about five or six HP-laptop system apps, from HP config Utility to OS Enhancements and more.  Problem persists!
I upgrade my firmware.  Problem persists.
I (eventually) reinstall XP from scratch.  OS reinstall is a major admission of defeat for me – luckily for my ego the problem persists!
I upgrade XP to SP3.  Still there.
I upgrade my BIOS (we won't bother going into the three-day episode of hell that turned out to be).  About the only thing that does remain the same is the volume issue.
Throughout this I'm SCOURING the net and finding tonnes of people complaining about the same thing, none of them with a solution or explanation;
"Volume button stuck"
"Volume control keeps going down"
"How can I disable hardware volume controls?"
After hours and hours and hours and hours and then days of troubleshooting and trying stuff I eventually gave up, shoved a pin in the volume-up button to wedge it and managed to watch half a movie to convince myself it had all been worth it.

Of course, I wouldn’t have gone to all this trouble of writing this if the final solution was “stick a pin in it”, but being sick and frustrated I have to admit I gave up the first time and just couldn't be bothered.
About six months later I wind up sick again - so I pull out the old laptop and spend the day working in bed.  Afternoon comes and I'm keen to watch a movie – where’s the volu- oh crap..
Back to square one, and now I refuse to use the old pin trick because, well, to be honest...I can't find a pin.

So I start again.  After trying to reload stuff in different orders, spending hours trawling through the same old posts from people who had the same problem (and never found a solution, other than something like my pin or, in one case a rather popular solution which involved ripping open the laptop and physically short-circuiting or removing the buttons from the laptop completely, soldering iron and all!) I eventually decided to try figure it out myself.
This is what I did.

Troubleshooting 4.0:

It seemed from all my fiddling that it was more likely a hardware problem in that the "volume down" button was physically stuck, as opposed to a software problem - but regardless of the cause, I had to figure out if Windows was detecting a keypress or whether something else was forcing the volume down.  I did a quick google and downloaded and installed a basic keyboard monitor program called KeyboardTest.
Sure enough, it showed a constant input of a keycode 174 (0xae)
I checked the code and confirmed that this was Windows speak for "Volume Down" - so the issue was definitely emotionally hardware related in that the volume down button was permanently depressed. [see 2016 Post Script edit below]
Not willing to take a soldering iron to my laptop I decided I had to find the software equivalent of my pin - i.e. pushing in the volume UP button all the time, which seemed to cancel out the Volume Down.
Another short google search later and I came across something called AutoHotKey.  AutoHotKey is a freeware app that allows you to customise and configure keyboard shortcuts - while it's running, it intercepts all keyboard keypresses, checks to see if you have commands or macros set up for them and if so executes them instead of sending the keypress to Windows.
I downloaded AutoHotKey, installed it, quick-read the helpfile and there it was - interception keys for Volume!
I edited the default script and set it to send "Volume Up" every time "Volume Down" was pressed.  I ran it and it completely reversed my problem! 


Wait, let's be clear here - not fixed exactly, reversed - my volume now went all the way up continuously - not perfect, but still a major improvement from no sound.

After giving it some thought I realised that pressing the Volume Up key physically may have been cancelling out the Volume Down input, but AutoHotkey was intercepting this and instead of sending the Down command, sent the Up command - which meant there was no cancelling out.  For the software version of my pin, I didn't have to counter the "Volume Down" keypress with a "Volume Up" - I just had to intercept the "Volume Down" and discard it.

I edited the script and a few seconds later it worked 100%!  Now when I drag the volume bar it stays where I put it! 

Ok, so the hardware buttons still do weird things if I try use them, but I don't need ‘em so who cares?  At least I didn’t take a soldering iron to my laptop!



After getting it right I wanted to go back to all those forums and tell people - there is a solution that doesn't involve melting lead!
But thinking of having to register on each forum, verify email, then post, then move to the next - well I figured it would be easier to post a blog and hopefully if someone does a search like "nx9110 volume demon" or "hp laptop volume stuck" they'll find my blog :)
Lemme know if you found it!

Disclaimer:
All stolen images are copyright of their respective owners and I did not get permission to reproduce them.  However, considering I just did a search on Google Images and fiddled with photoshop I figured nobody would mind.  If you do mind, please talk to Google seeing as they were kind enough to reproduce them for me in the first place, so I'll take whatever legal stance they take.
POST SCRIPT EDIT: 2016
A few years later I rebuilt the laptop with Linux.  Then I rebuilt it with Windows XP.  Then Linux again.  Then Windows 7.
I realised the sound problem no longer persists - meaning a rebuild would have fixed it - meaning, probably, that it was a software problem after all.  As I'm not someone who accepts "rebuild" as a viable solution to anything other than a corrupted OS beyond repair, the above blog remains :)

1 comment: