I have two flash drives of differing build quality. Can I tell the "bad" one apart programatically?

4

2

I'm trying to help a friend diagnose their company's USB flash drive issues. They purchased two types of drives en masse (I'm not sure of the exact source, but it was an overseas bulk order akin to Alibaba); let's call them Black and Yellow for simplicity.

The Black drives work flawlessly for all intended features (mainly gathering debug information from lab equipment via USB port), while the Yellow ones format correctly, but don't seem to "mount" properly on most connected devices (e.g. their lab equipment, and consumer products such as TVs that update firmware via USB using a FAT32-partitioned drive).

Besides apparently shoddy manufacturing (and the mildly concerning wad of glue directly on the chip), is there any reliable way of telling a "bad" flash drive from this data alone? If so, how would they be able to tell their customers that they've got a junk drive? My main inclination is to say that an idle USB drive shouldn't be drawing the full 500mV (as Yellow does), but I'm not positive on if that's what's causing issues in the standalone devices.

I realize it comes down to buying devices from reputable manufacturers, but if there is a surefire way to debug a connected flash drive and let the customer know it's not going to cut it, we can script a program for exactly this purpose (if one doesn't already exist).

Here's some images and a USBDeview overview of both. I ran both drives through ChkFlsh; neither of them flagged any errors on a 1-hour test run, so the flash module appears to be passable.

This is the "Black" (good) module USBDeview. Not seeing any obvious issues.

"Black" (good) module USBDeview. Not seeing any obvious issues.

This is the "Yellow" (bad) module USBDeview. Holy bees that 500mA power draw (though is that a reliable measure?). General draw for flash drives seems to be anywhere between 50-200mA, so this one doesn't have any self-regulation at all and just caps out the available USB standard.

"Yellow" (bad) module USBDeview. Holy bees that 500mA power draw (though is that a reliable measure?). General draw for flash drives seems to be anywhere between 50-200mA, so this one doesn't have any self-regulation at all and just caps out the available USB standard.

This is the "Black" (good) with epoxied chip-on-board design.

"Black" (good) with epoxied chip-on-board design.

This is the "Black" (good) flash module.

"Black" (good) flash module.

This is the "Yellow" (bad) with glue directly on controller chip. I suppose it counts as "sealed"...

"Yellow" (bad) with glue directly on controller chip. I suppose it counts as "sealed"...

This is the "Yellow" (bad) close-up of controller. Board is a PUD2-TD202 V1.00

"Yellow" (bad) close-up of controller. Board is a PUD2-TD202 V1.00

"Yellow" (bad) flash module. Both devices pass extended Chkflsh tests on a Win10 host.

"Yellow" (bad) flash module. Both devices pass extended Chkflsh tests on a Win10 host.

Kibbles

Posted 2018-09-13T23:59:08.637

Reputation: 43

1All the "bad drives" work reliably with Windows machines, correct? the problem is only with various appliances? – ddbug – 2018-09-14T00:47:41.567

@ddbug that's correct. They both accept files properly and pass extended read and write checks in Chkflsh. I wonder if the "bad" one might be drawing too much power for appliances to properly handle; PCs might be able to properly compensate for that, but I don't know if it's the same for bog-standard USB ports on an appliance (even though it should still supply 5V). – Kibbles – 2018-09-14T00:59:48.033

As for power drawing, you can easily test it with a USB VA-meter (numerous models in cheap webstores). It looks like the limit, read from the config descriptor, not the actual draw. – ddbug – 2018-09-14T01:16:22.790

Answers

3

I note a difference in the Serial Number on the disk, where for one disk it is left as blank.

In Windows, you may use the wmic command to examine the disk.

For example, to get the manufacturer's serial number of all hard drives :

wmic diskdrive get serialnumber

There may be other properties of the bad disk that are different. You can get all properties of all drives by :

wmic diskdrive >file.txt

Examining this file, while both a good and a bad drives are mounted, will perhaps show more differences.

You may limit the query to a certain disk-drive by this syntax :

wmic DiskDrive where "DeviceID='\\\\.\\PHYSICALDRIVE2'" get serialnumber

This query will be helpful if you are mounting the disks repeatedly on the same drive of the computer. Note the double anti-slashes in the query, which are displayed as only one in the output.

harrymc

Posted 2018-09-13T23:59:08.637

Reputation: 306 093

That's the bizarre thing, the "bad" drive is the one that has a serial number. The working one doesn't! This is a great starting point though; I'll go through a few more good ones in the bin and see if they're all missing the serial number, and then I can create a blacklist for all the ones matching the pattern on the bad (Yellow) drive.

Thank you! – Kibbles – 2018-09-15T02:25:56.573