After various reports of Windows 7 machines hanging while copying files to the mbed Micrcontroller, we did some investigations to recreate the problem, and of course find a fix. Some of the support cases I'd handled suggested that the problem didn't appear on XP, and when it did appear on Window 7, replacing the cable fixed the problem. Could it really come down to the cable not being suitable for Window 7? Fact is often stranger than fiction.
The conclusion is that if you're experiencing this sort of issue, try using another cable. If you want to know why, read on...
The first thing I needed to do was recreate the issue. We'd seen it in the office once or twice before, but not consistently, so the search began for a robust test case. I eventually got my hands on a a Lenovo T410. A 32 bit machine running Windows 7 Enterprise edition, and it showed the problem reliably.
So with a reliably failing machine in hand, I took the plunge and used a different cable. I couldn't believe it - it worked! But the "failing cable" worked on machines with Windows XP, can cable be OS dependent?
I then tried an assortment of cables. Some shorter than the 1.8m cable we ship. Some fatter, suggesting heavier gauge conductors and thicker screening. Some with RF chokes fitted at each end. They all worked beautifully.
The interesting point was when I decided to install Windows XP on the Lenovo T410 machine which reliably failed with the standard cable. In this scenario, the cable still failed with that machine when Windows XP was installed.
After this testing I realised that the correlation with the version of Windows is really a correlation with the age of the machine, and the USB chip set it contains. Most Machines with XP were older, and worked fine. Most machines with Windows 7 were newer, had USB 3.0 support, so therefore a different chip set which is more reliant on the quality of the cable. This hypothesis fits with the fact that the newer machine still fails when running Windows XP.
The conclusion of all this is that USB chip sets in newer machines can be a little more dependent on the quality of the cable for correct operation. If you have a newer machine (if it was shipped with Windows 7 seems to be a good indicator!) and you have problems with the USB Flash drive of mbed, try using a different cable. Maybe a shorter or fatter one that came with a Digital Camera or MP3 player. In the mean time, we have qualified new cables which have started to ship with the mbed Microcontrollers.
If you're having any USB related issues, try using a different cable.