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.

Luke
  • 530
  • 2
  • 5
  • 10
  • 2
    USB is slow compared to SATA, but I don't think it's slower than the SD slot on the RPi – John La Rooy Aug 30 '12 at 18:42
  • With SDHC at up to 25MB/s v2.00 and UHS-I up to 50 or 104MB/s (https://www.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. – user2943160 May 24 '16 at 02:10

1 Answers1

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?

Mark Booth
  • 4,360
  • 2
  • 29
  • 42
  • 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 '12 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 '21 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 06 '21 at 01:04