I've searched high and low for something to get me on the right track, it's making me think it might not be possible.
Basically, I want to create a cheap SSD using Arduino (or another microcontroller if it is too weak). I know I would have to implement the SATA protocol on the device and an OS driver for the disk drive. Assuming I could jump those two hurdles, what else would bar me from implementing a rudimentary SSD? I'm not even talking about full production quality, just a SATA wire coming from a mother board plugged into a socket on a breadboard. Do I need flash storage or would I need another kind of chip to handle the data needs?
-
4Do you understand what SSD is standing for? Maybe you mean just some kind of SATA-connected storage?Eugene Sh.– Eugene Sh.2015年02月27日 16:14:48 +00:00Commented Feb 27, 2015 at 16:14
-
2The legacy SATA 1.0 throughput of 1.5 GB/s is going to be a huge problem without dedicated hardware - I don't think you stand a chance on any Arduino.Adam Lawrence– Adam Lawrence2015年02月27日 16:16:32 +00:00Commented Feb 27, 2015 at 16:16
-
Is the SATA standard really not documented anywhere on the entire internet?John U– John U2015年02月27日 16:34:01 +00:00Commented Feb 27, 2015 at 16:34
-
1If you want to do this just for fun, implement USB Mass Storage on a Leonardo backed by an SD card or SPI flash. It will be painfully slow, but the concept will be there. Outside of the Arduino realm, I expect you could find an existing project to do this with the STM32F4 Discovery board (which is cheaper anyway).Chris Stratton– Chris Stratton2015年02月27日 19:48:38 +00:00Commented Feb 27, 2015 at 19:48
-
This is such an awesome quest, Creating a storage device from scratch to be used from a computer. I really hope you succeed and please post updates if you make it :)Stephan Møller– Stephan Møller2018年05月18日 18:56:05 +00:00Commented May 18, 2018 at 18:56
1 Answer 1
The good news is that SATA drivers are fairly generic so you don't have to write the OS side. The bad news is everything else.
just a SATA wire coming from a mother board plugged into a socket on a breadboard
Let me stop you there. The minimum data rate for SATA is sufficiently high that you need a PCB. If you try and do this with wires or breadboards it will simply not get through; it will be lost to parasitic capacitance.
(Many years ago as a student I tried to do something vaguely similar with a wire-wrap board. At just 20MHz you could see a clean signal go in one side and a noisy unreadable mess come out the other side. Actually seeing it on a scope drove home the importance of shielding.)
Do I need flash storage or would I need another kind of chip to handle the data needs
Where would you put the data otherwise? It might be an entertaining first step to create a read-only drive with constant contents, but it's not very useful.
You need a chip with a SATA interface. This will almost certainly be an ARM and almost certainly not in DIP. I can't remember at the moment whether SATA master and slave "PHY" interfaces are different or whether it's all defined in software, someone else can answer that.
-
Sweet thanks for the info. I guess the Arduino is a very "beginner's" setup so I would want to get a more advanced controller for such an undertaking. Thanks for the info.Michael Brown– Michael Brown2015年02月27日 23:56:33 +00:00Commented Feb 27, 2015 at 23:56
-
1@pjc50 - He could implement a Write Only Memory - perhaps an emulation of the Signetics 9C46XN / 25120Russell McMahon– Russell McMahon2015年02月28日 14:12:25 +00:00Commented Feb 28, 2015 at 14:12