Saturday 29 September 2012

ChipsBnk USB SD card reader

Last month bought an SDHC USB adapter (£1.75) and a triple set of own-brand 8GB Class 10 SD cards (£12.99) from 7dayshop.com claiming to support up to 20MB/s. One card wouldn't even mount but found this open source tool (for Linux or Mac) very useful to test the remaining memory cards: Michel Machado's F3 (repository on github).


The good news was that the USB adapter seemed to work fine on my exiting battle tested 8GB SD cards - but the trouble started with the new 7dayshop branded cards:


Card One - Bust?

$ system_profiler SPUSBDataType
...

            USB Reader:

              Product ID: 0x4082
              Vendor ID: 0x1976
              Version: 1.00
              Serial Number: 110074973765
              Speed: Up to 480 Mb/sec
              Manufacturer: ChipsBnk
              Location ID: 0xfa130000 / 6
              Current Available (mA): 500
              Current Required (mA): Unknown (Device has not been configured)

I waited a bit longer and then it could tell me about the card inserted,


            USB Reader:

              Capacity: 1.07 GB (1,073,741,824 bytes)
              Removable Media: Yes
              Detachable Drive: Yes
              BSD Name: disk1
              Product ID: 0x4082
              Vendor ID: 0x1976
              Version: 1.00
              Serial Number: 110074973765
              Speed: Up to 480 Mb/sec
              Manufacturer: ChipsBnk
              Location ID: 0xfa130000 / 6
              Current Available (mA): 500
              Current Required (mA): 100
              Partition Map Type: Unknown
              S.M.A.R.T. status: Not Supported

That looks like 1GB, despite the sticker saying 8GB. I waited a bit longer, and the adapter's red LED stayed on solid - and then it doesn't show up in the USB devices at all. And the card never showed up in finder. Grr. It wouldn't work in my camera either.

Card Two

This looked OK,

            USB Reader:

              Capacity: 8.07 GB (8,072,986,624 bytes)
              Removable Media: Yes
              Detachable Drive: Yes
              BSD Name: disk1
              Product ID: 0x4082
              Vendor ID: 0x1976
              Version: 1.00
              Serial Number: 110074973765
              Speed: Up to 480 Mb/sec
              Manufacturer: ChipsBnk
              Location ID: 0xfa130000 / 6
              Current Available (mA): 500
              Current Required (mA): 100
              Partition Map Type: MBR (Master Boot Record)
              S.M.A.R.T. status: Not Supported
              Volumes:
                NO NAME:
                  Capacity: 8.07 GB (8,068,792,320 bytes)
                  Available: 8.06 GB (8,062,304,256 bytes)
                  Writable: Yes
                  File System: MS-DOS FAT32
                  BSD Name: disk1s1
                  Mount Point: /Volumes/NO NAME
                  Content: DOS_FAT_32

Card Three

            USB Reader:

              Capacity: 8.07 GB (8,072,986,624 bytes)
              Removable Media: Yes
              Detachable Drive: Yes
              BSD Name: disk1
              Product ID: 0x4082
              Vendor ID: 0x1976
              Version: 1.00
              Serial Number: 110074973765
              Speed: Up to 480 Mb/sec
              Manufacturer: ChipsBnk
              Location ID: 0xfa130000 / 6
              Current Available (mA): 500
              Current Required (mA): 100
              Partition Map Type: MBR (Master Boot Record)
              S.M.A.R.T. status: Not Supported
              Volumes:
                NO NAME:
                  Capacity: 8.07 GB (8,068,792,320 bytes)
                  Available: 688 KB (688,128 bytes)
                  Writable: Yes
                  File System: MS-DOS FAT32
                  BSD Name: disk1s1
                  Mount Point: /Volumes/NO NAME
                  Content: DOS_FAT_32

Wow - capacity 8GB, but only 688KB available? Turned out it had several *.h2w files on it suggesting it had been tested with the Windows H2testw - perhaps by a previous customer who sent it back? So, I tried out the tool F3, having first renamed the card to help keep track of things:

$ git clone https://github.com/AltraMayor/f3.git
...
$ cd f3
$ make mac
...

Then use f3write to fill up the card with test files,

$ ./f3write /Volumes/7DayShop3/
Free space: 7.51 GB
Creating file 0001.fff ... OK!                      
Creating file 0002.fff ... OK!                      
Creating file 0003.fff ... OK!                      
Creating file 0004.fff ... OK!                      
Creating file 0005.fff ... OK!                      
Creating file 0006.fff ... OK!                      
Creating file 0007.fff ... OK!                      
Creating file 0008.fff ... OK!                    
Free space: 0.00 Byte
Average writing speed: 8.76 MB/s

Now use these test files to check reading the data back works:

$ ./f3read /Volumes/7DayShop3/

                     SECTORS      ok/corrupted/changed/overwritten
Validating file 0001.fff ... 2097152/        0/      0/      0
Validating file 0002.fff ... 2097152/        0/      0/      0
Validating file 0003.fff ...  335488/        0/      0/      0Assertion failed: (*read_all || errno == EIO), function validate_file, file f3read.c, line 126.
Abort trap: 6

Then it was unmounted, with a red exclamation error dialogue popping up warning the disk was not ejected properly. I remove the adapter, reinserted it, and tried again:

$ ./f3read /Volumes/7DayShop3/
                     SECTORS      ok/corrupted/changed/overwritten
Validating file 0001.fff ... 2097152/        0/      0/      0
Validating file 0002.fff ... 2097152/        0/      0/      0
Validating file 0003.fff ... 2097152/        0/      0/      0
Validating file 0004.fff ... 2097024/      128/      0/      0
Validating file 0005.fff ... 1660288/        0/      0/      0Assertion failed: (*read_all || errno == EIO), function validate_file, file f3read.c, line 126.
Abort trap: 6

Same problem - plus f3read detected some corruption.  The third attempt failed even quicker:

$ ./f3read /Volumes/7DayShop3/
                     SECTORS      ok/corrupted/changed/overwritten
Validating file 0001.fff ... 1987584/        0/      0/      0Assertion failed: (*read_all || errno == EIO), function validate_file, file f3read.c, line 126.
Abort trap: 6

From later experience these disconnections are probably down to the USB card reader - but f3read did spot corruption in file four above.

Card Two

I decided to run the tests on the apparently good card as well, writing seemed OK:


$ ./f3write /Volumes/7DayShop2
Free space: 7.51 GB
Creating file 0001.fff ... OK!                        
Creating file 0002.fff ... OK!                        
Creating file 0003.fff ... OK!                        
Creating file 0004.fff ... OK!                        
Creating file 0005.fff ... OK!                      
Creating file 0006.fff ... OK!                      
Creating file 0007.fff ... OK!                      
Creating file 0008.fff ... OK!                      
Free space: 0.00 Byte
Average writing speed: 7.75 MB/s

So did reading:

$ ./f3read /Volumes/7DayShop2
                     SECTORS      ok/corrupted/changed/overwritten
Validating file 0001.fff ... 2097152/        0/      0/      0
Validating file 0002.fff ... 2097152/        0/      0/      0
Validating file 0003.fff ... 2097152/        0/      0/      0
Validating file 0004.fff ... 2097152/        0/      0/      0
Validating file 0005.fff ... 2097152/        0/      0/      0
Validating file 0006.fff ... 2097152/        0/      0/      0
Validating file 0007.fff ... 2097152/        0/      0/      0
Validating file 0008.fff ... 1067328/        0/      0/      0

  Data OK: 7.51 GB (15747392 sectors)
Data LOST: 0.00 Byte (0 sectors)
      Corrupted: 0.00 Byte (0 sectors)
Slightly changed: 0.00 Byte (0 sectors)
    Overwritten: 0.00 Byte (0 sectors)
Average reading speed: 16.64 MB/s

Conclusion

One out of three cards seems to be OK. Not good - but I got to test the 7dayshop customer service, who refunded the cards without any hassle. Having been stung by this I bought some main stream brand SDHC cards instead.

I decided to keep the card reader, but in usage since I've found the card reader not 100% reliable - e.g. it would disconnect while copy photos off an SD card. For that job I've continued to use my camera directly via its USB cable. The card reader would also disconnect while running f3read on my 'good' memory cards.

However, I was able to use the reader to create a bootable image to use on my Raspberry Pi on another SDHC card - which was the main reason I bought it anyway - so I feel I got my £1.75 worth of usage from it ;)

No comments:

Post a Comment