A double reminder tonight of the perils of USB incompatibility.
Our son filled up the internal 250GB hard drive on his PlayStation 3, and we decided to buy a new 1TB drive (2.5″) at Microcenter in Cambridge to replace it. The PlayStation, in theory, cooperates nicely with the swap process: attach an external USB hard drive, run a backup from the PS3 menu, then swap in the new hard drive. The console then formats the new drive and writes its OS onto it. Once that’s done, re-visit the backup menu and choose restore.
Didn’t work, of course.
Backup, swap, and writing of new OS went OK. The PS3 would see the external USB drive and locate the backup set, restart itself, then claim it couldn’t see a device with a backup.
But it just saw the device with a backup! What happened?
I realized what was happening: after recognizing the backup set, it was rebooting into some minimal OS, probably fully in flash memory or ROM, that does the restore – this way the internal hard drive isn’t needed for anything and a clean restore image can be written to it without worrying about any parts of the drive needing to be avoided.
The trouble was that the the minimal OS’s USB driver did not get along with the external hard drive’s SATA-USB controller, although the full OS’s USB driver was A-OK with it. I’d put my money on the fault lying in a subtle timing issue in the SATA-USB bridge in the external drive. But rather than troubleshoot the precise problem, I cheated instead: I opened the external drive’s case, dropped the backup drive into a workhorse SATA-USB drive dock, and tried to restore again. The minimal OS was now happy and the restore kicked off.
Just a few minutes later, another lightning bolt from the gods of bad USB design struck: my wife asked me to take a look at a USB flash drive she’d been given with some documents, that neither her office computer nor home laptop could recognize. I popped it into our desktop computer, and the thing sprung to life. Another case of USB incompatibility!
The moral of the story: USB ain’t the most standard of standards, and most issues seem to stem from sloppy design. When designing a product with USB, it’s important to choose components wisely, pay attention to limits (e.g., load capacitance is very easy to exceed) and actually run the proper certification tests on hardware: this requires a pretty fast oscilloscope with a special USB test fixture, usually rented because we’ll only occasionally need it. All in all, a pain in the butt, but if we don’t do things right then money saved will be more than lost in unhappy customers!