Wednesday, July 29, 2015

Upgrading HP EliteBook 8560w to Windows 10

I decided to jump in headfirst and upgrade my personal laptop to Windows 10 on release day.  The upgrade process was really straight forward and I didn't encounter any problems.  After about 90 minutes of downloading and updating, the system rebooted for the 2nd or 3rd time.  I saw the Windows logon screen flash for a second, then it went blank.

The system appeared to be functioning; it was making sound, the numlock light went on and off, etc. but there was nothing visible on the display.  I tried restarting several times and each time saw the same quick flash of the Windows login screen followed by a blank screen.

My first thought was that there was an issue with the video card driver (AMD FirePro M5950), so I attached an external monitor.  If the video driver was a problem then the external display probably wouldn't work either.  I was pleasantly surprised when the video popped up on the external display.

After fruitless searches of the internet and several rounds of upgrading and downgrading video drivers did not resolve the issue, I was preparing to roll back to Windows 7.  I decided to check the BIOS to confirm the computer's specs so I could report the problem as part of the downgrade process.

Once in the BIOS, I noticed that the laptop's ambient light sensor was enabled.  If working properly, this should help adjust the backlight level based on the lighting in the room.  However it occurred to me that if it wasn't working correctly, it could potentially shut the display's backlight off.  Figuring there was no harm, I disabled the sensor and rebooted one last time.

Bingo!  Windows logon screen showed and it didn't go blank.

After a couple hours of using the newly upgraded machine, the display still seems to be working nicely.  The ambient light sensor worked under Windows 7 immediately before the upgrade, so I suspect there is not yet full driver support for this particular device in Windows 10.

I figured I'd post this here in hopes it helps someone else who is encountering similar issues.

Sunday, October 07, 2012

Bricked TRENDnet TEW-651BR

Despite carefully following the directions for performing a firmware update on my TRENDnet TEW-651BR, I recently found myself with a non-responsive (aka "bricked") router.  It wasn't handing out IP addresses and when I manually configured my computer to use an IP in the TEW-651BR's default 192.168.10.* range I was still unable to get any response.

Feeling defeated, I submitted a support ticket to TRENDnet and then setup an old computer to temporarily serve as a wireless router while I waited for a response from support.  TRENDnet tech support replied in about a day, but unfortunately they were unable to offer any assistance beyond a lengthy (scripted) response which could be summarized as, "reset the router and try the firmware update again". 

Searching the interwebs failed to turn up a solution, so I figured I'd wing it.  Although most of my experience is with desktop application development, I do have some development experience on embedded systems as well.  And I know from my brief time in that realm that some devices (including routers from other manufacturers) can be recovered using a TFTP upload of the firmware even if they're otherwise non-functioning.

So with nothing to lose, I decided to give it a whirl.  I setup my computer to tftp the firmware to the router's default IP (

tftp -i firmware.bin

I plugged the router in and as soon as I saw the lights start, I hit enter.  Instead of emitting an error, tftp showed a progress bar and a few moments later the router rebooted itself.  Keeping my fingers crossed, I reconfigured my computer to use DHCP and attempted to connect to the router's management web page.  After what felt like an eternity, the browser refreshed with the familiar TRENDnet logon screen and I was back in business.

It has been just over two months now and I'm happy to report my TRENDnet TEW-651BR is still working nicely.

Update (June 2013)

My original post included instructions based on TFTP under Linux.  If you don't have access to a Linux machine, TFTP is available on Windows and MacOS too.  Unfortunately the command syntax is slightly different on each platform.  I'll try to outline the steps below for using TFTP on each of these platforms.


I believe a TFTP client was installed by default under WinXP if TCP/IP was installed.  Under Windows Vista and Win7, the TFTP client is not installed by default and some extra steps are required to install it.  I suspect a similar process must be followed in Win8.

First navigate to the Control Panel-> Programs->Turn Windows Features on or off

Scroll through the list and find the 'TFTP client'.  It'll be unchecked as in the screen shot below.  Check the box next to TFTP client and click "OK".  It may take a couple minutes while windows installs this component.

Once installed, you should be able to run TFTP from a command prompt.  The Windows version of TFTP requires slightly different syntax (highlighted in red below).

tftp -i PUT firmware.bin

There are also many, free graphical TFTP clients available for Windows.  A quick search should turn up one or more of these tools.  Just make sure you transfer the firmware in binary mode!


The TFTP client provided with MacOS only runs in an interactive mode.  This makes it harder to hit the small window in which the TFTP server is listening.  Consider using an alternative TFTP client like MacPorts tftp-hpa port instead of the built-in TFTP client.

To upload the firmware you'll need to first launch TFTP from the directory which contains firmware.bin

tftp -i

Then from the tftp> prompt you'll need to issue the following commands:

tftp> verbose
tftp> put firmware.bin
tftp> quit

The 'verbose' command simply tells TFTP to provide more information about what it's doing.  This can be issued as soon as TFTP is started.  The 'put' command should be issued at the point when the lights start on the router.

Like Windows, there are third party TFTP clients available for the Mac. Users in other forums have experienced some difficulty using the built-in TFTP client so you might consider using a third party client instead.

Other Tips

The window of time that the router's TFTP server is listening is very short, maybe as little as 1-2 seconds from the time the router is powered on.  If you miss this window, TFTP will just sit trying to connect and eventually time out.

When TFTP connects and the file is uploaded you should see status something like:

Transfer successful: 8388608 bytes in 2 second(s), 4194304 bytes/s

If you don't see any status from TFTP after about 30 seconds and the router doesn't reboot itself within a minute or two, then you've likely missed the window and will  need to try again.

For additional info on how to recover a bricked router, I'd recommend looking at DD-WRT's excellent Recover From a Bad Flash wiki page.  There are tips for multiple makes & models of routers and much of what is written there can be used with stock firmware just as readily as DD-WRT.  (Note:  At the time of writing, DD-WRT is not compatible with the TEW-651BR, so don't even try!)

Friday, July 15, 2011

What does it take to wear out a bike chain?

My road bike is equipped with a Shimano 9 speed chain which is as old as the bike (6 years old) and despite a fair bit of use over the years it remains in good condition.
Despite a slow start to summer, I've been determined to increase my mileage this year.  I've already logged more miles than last year, so maybe this will be the year my chain finally wears out.

Wednesday, June 29, 2011

GR8 Conf

This week I attended GR8 Conf in Bloomington, MN.  It's been several years since I've this type of technology conference so I was excited to see what this conference had to offer.  GR8 Conf was local, reasonably priced and had quite a few sessions which were related to desktop technologies - sounds perfect!.

GR8 Conf ended up being money well spent.  I attended sessions on Groovy, GrailsGradle & Griffon.  Even though I did a little coding with Groovy & Grails when I was in school, the sessions were great refreshers and I managed to pick up a couple new tips.  Both Griffon and Gradle were completely new for me, so I got a crash course in these technologies from a couple great speakers who clearly knew their stuff.

This is definitely a conference I'm planning to attend again in the future.

Wednesday, May 04, 2011

Long time, no post.

Those who know me well might tell you that I generally have plenty to say.  For some reason my tendency to ramble doesn't necessarily extend into the on-line world.  I haven't had much that I felt warranted a post for a long time so this blog, like my website, has been collecting the cyberspace equivalent of dust.

My hope is that this post is the start of slightly more regular posts.  I'll probably tend towards technology since that's something I know a bit about, but I may occasionally try to post something on running, biking or some other aspect of my life which probably isn't terribly interesting to anyone except me.

Tuesday, July 27, 2010

Pidgin 2.7 (and newer) with spell-check

Several years back I posted instructions on how to enable spell-check in Pidgin (then known as GAIM). Apparently it was hard to find these instructions elsewhere as Google ranked my original post in the top 10 results for searches on "pidgin spell check" and "gaim spell check".

For the benefit of those folks who still find there way here via Google, below are updated instructions for enabling spell-check in Pidgin 2.7 and newer.  Thanks to nascent for pointing out this change.

Shamelessly copied from the Pidgin FAQ
Versions 2.7.0 and newer use the dictionaries available from the openoffice download site. You need to download the appropriate language zip file(s) (files are in the form of two-character language code followed by a two-character country code - United States English is Once you have downloaded the dictionary zip file, you need to extract it to \spellcheck\share\enchant\myspell\ (create the directories if they don't exist already). If Pidgin is running, it needs to be restarted for new dictionaries to be used. 

Monday, January 19, 2009

IntelliJ IDEA key bindings for Eclipse

I often switch between using IntelliJ IDEA and Eclipse for my day-to-day development tasks. One reason this is possible is thanks to a set of key bindings that allow me to use the IntelliJ keyboard shortcuts in Eclipse. contains a set of key bindings for Eclipse. These can be imported into Eclipse by opening the preferences import dialog (File > Import > General > Preferences). I've used these successfully with Eclipse 3.x but have not tried with earlier versions of Eclipse.

The key bindings were originally posted (and created?) by Stuart Ervine in an entry in his abandoned jroller blog. Any and all credit goes to the original author for this work, I'm just mirroring it here to make sure it doesn't get lost in the Interweb.

(April 12, 2010):  Fixed the broken link to the key bindings file.  A very belated thanks to James Strachan for pointing out that it was busted...

Wednesday, November 26, 2008

Geek Humor

An infinite number of mathematicians walk into a bar. The first one orders a beer. The second orders half a beer. The third, a quarter of a beer. The bartender says "You're all idiots", and pours two beers.

Monday, September 29, 2008

Can a safe deposit box be too safe?

A few months ago went to our neighborhood Wells Fargo to get a safe deposit box. After filling out the paperwork to lease a box & signing the entry cards, we went into the vault to open box number 123*. As we entered the vault, our friendly personal banker gave us a stern warning about not losing the keys because it would cost $125 to have the lock drilled. With his well practiced spiel delivered, he proceeded to insert our key into one lock and the bank's key into the second lock. He tried to turn both keys to open the box, but the keys wouldn't budge. "That shouldn't happen... I'm sure the other key will work fine." After a couple minutes of trying out various combinations of locks and keys, the box was still securely shut. Now looking rather defeated, our banker sheepishly suggested it might be easier for us all to go back to his desk to fetch a set of keys for a different lock box.

I didn't have the heart to ask the guy if they charge themselves $125 to drill the locks...

* Actual box number changed to protect the innocent.

Sunday, September 07, 2008

A great bumper sticker.

"Try being informed instead of just opinionated."

Yet the message is probably lost on those to whom it most applies.