Thursday, 11 August 2016

Adventures with USB to SATA/PATA bridges

If you have a spare SATA hard drive or DVD burner, or a PATA DVD burner lying around, you may be tempted, like me, to connect it to your computer using a USB adaptor, to function as an outboard drive, using one of the many identical adaptors you can buy on eBay for a few dollars. You will need an external power supply of course, and I'm assuming you have one lying around too. All these experiments were done on a Raspberry Pi 2.


The first one I bought looked like this. It also came with a SATA cable and a Molex to SATA power adapter cable. Note the there are two PATA interfaces, one for 3.5 inch HDs and DVDs and one for 2.5 inch HDs on opposite sides. For the 2.5 inch HDs no power supply is needed, as the power comes from USB.

The lsusb command shows that this uses the JMicron 20337 chip:

ID 152d:2338 JMicron Technology Corp. / JMicron USA Technology Corp. JM20337 Hi-Speed USB to SATA & PATA Combo Bridge


There are a couple of quirks with it. The first is that the chip will not be detected unless the HD/DVD side is plugged in and powered up. The other is that the 40 pin (3.5 inch) PATA side can be plugged into the HD/DVD offset by one pin if you are not careful, because the plug is slightly narrower than the socket, and the key is also a bit smaller than the slot. The second is that the Molex power connector may jam against the PATA connector. In fact this is a cause of accidental offset if you plug the Molex connector in first. The problem is a wing on the connector near the wire end that makes it take up more room. I snipped off one wing with cutters.

Using this adaptor with a DVD burner was fine, the drive appeared as /dev/sr0, and I was able to use brasero to burn optical media. However experience with 3.5 inch SATA HDs was unsatisfactory. If data rates are too fast, the chip is apt to disconnect and then the Linux driver tries to reset the USB interface but this never works. It seemed to work ok with 2.5 inch laptop PATA drives. The disk appears as /dev/sda, as the SD card drive is /dev/mm-something.


I bought a second USB adaptor, this time only for SATA devices. This one came as a rather fat USB dongle with SATA and e-SATA sockets on the side. You may have to use a hub if it blocks other USB sockets on your computer from being used. The lsusb command shows that this uses the JMicron 20329 chip.

ID 152d:2329 JMicron Technology Corp. / JMicron USA Technology Corp. JM20329 SATA Bridge

There is an intriguing message in the system log:

Quirks match for vid 152d pid 2329: 8020

I haven't looked at the driver source, but the message seems to suggest that the driver copes with this one better. When I used it with a SATA HD, there were no disconnects and resets. So this is the one I will use to interface to the HD, using the 20337 only for the DVD drive.

You may see USB adapters that plug directly onto the back of the drive. Those are for 2.5 inch drives only as the power comes from USB.

All the devices mentioned here are USB 2.0. USB 3.0 adapters are available, and only worth it for SATA HDs, but I don't have a great need for speed so I'll let them get cheaper before I buy one.

No comments:

Post a Comment