26

I have been searching around for a cable which could be used to connect a normal hard-drive (SATA) to the SD slot, and therefore get a lot more storage without having to go via the (comparatively slow) USB slot.

I can find SATA / SD adaptors (such as this one), but they all seem to work in the opposite way to what would be ideal (i.e. you plug an SD card into the adaptor, this allows you to use SD storage, but it appears to the computer like a normal SATA-connected HD.

Anyone know of a device that essentially does the opposite? Thanks.

2
  • 2
    USB is slow compared to SATA, but I don't think it's slower than the SD slot on the RPi Aug 30, 2012 at 18:42
  • With SDHC at up to 25MB/s v2.00 and UHS-I up to 50 or 104MB/s (sdcard.org/developers/overview/bus_speed), USB2.0's 480Mb/s (60MB/s) theoretical bandwidth is still pretty good. Both suffer from half-duplex connections and a single data/command interface. SATA is definitely faster, being full-duplex and available at 1.5, 3, and 6 Gb/s (187.5, 375, and 750 MB/s) theoretical bandwidths, minus encoding overhead and commands. A 2.5" HDD won't be badly constrained by SATA->USB2.0. May 24, 2016 at 2:10

1 Answer 1

29

Alas no, it is not possible to connect a SATA device to the SD slot.

Unlike earlier flash memory standards like Compact Flash, which essentially used a Parallel ATA hard drive interface (scaled down in size) to attach flash memory, SD cards use a 1 or 4 bit serial interface and (more importantly) a different command protocol.

CF cards spoke the ATA command protocol and were electrically compatible with PATA, so all that was required to plug a CF card into an ATA port was a simple adapter which mapped one connector pinout to another (like a microSD to SD card adapter).

To create an SD to SATA converter would require a small embedded processor with an SD card interface on one side, and SATA interface on the other and some software to translate the protocols. This is essentially what the card you linked to does, in the opposite direction, but that direction is much easier.

You only need to support the limited set of SD card memory sizes and it is much easier to map SD functionality onto a SATA interface than vice versa. As an example, SDHC only supports up to 32GB cards for instance, so how should it handle SATA hard drives which are larger?

Given how cheap USB to SATA adapters are, the limitations that would have to be placed on an SD to SATA adapter, and the limited market for them, it wouldn't be economical to produce such an adapter.

As such, I would suggest looking at ways to attach your SATA hard drive via a USB port on a powered USB hub attached to your Raspberry Pi. You will still need a small SD card to boot off, but these are also very cheap these days.

There is more information on this option in the question Boot from external USB stick / drive?

3
  • Thanks for the info - very informative. Had no idea it would be easier one way than the other, and it is a shame, as this would have been very cool. I'll leave it open for a bit to see if there are any alternatives. If not I'll accept this. Thanks.
    – Luke
    Aug 30, 2012 at 13:21
  • Has anything changed over the years, regarding to that? Now we have much larger SD cards, and with higher speed. Are the protocols still the same, and the translation still hard? Or do we have feasible options by now?
    – Alexandre
    Mar 31, 2021 at 16:35
  • The SD cards may be bigger but the protocols and sockets haven't changed, so the answer is still the same, booting from USB is the only viable alternative.
    – Mark Booth
    Apr 6, 2021 at 1:04

Not the answer you're looking for? Browse other questions tagged or ask your own question.