23

A customer of ours makes industrial robots that run on very old, but stable, hardware and software. The only bottleneck has always been the hard drive in these moving machines. Due to constant movement (shocks etc.) HDDs normally don't survive beyond six months.

So now we're trying to connect an SSD. The motherboard doesn't have a SATA connection (no surprise there) so we're using a SATA-to-IDE converter to connect it to the IDE port on the motherboard. This works and the BIOS recognizes the drive.

Only problem is that it won't boot. It freezes on POST. In the BIOS (from the 1990s), we need to specify some values, called 'HEADS', 'SYL', 'CLUSTER', and 'LANDZ'. Unlike traditional HDDs, this drive obviously has no platters. Is there a way the drive mimics these things on IDE and can we somehow find out what these values should be for our specific drive? We have changed the values at random and sometimes it passes POST, sometimes it doesn't. If it does, however, it still doesn't boot and just says there's no drive connected.

In short, does anyone have any experience connecting a SATA SSD to an old IDE motherboard and what can we do to make this work (if anything)?

Knelis
  • 333
  • 5
  • 9
  • 3
    Blimey. My immediate response is "Good luck with that", but on the other hand, I'd love to know if it's possible. – Tom O'Connor May 08 '13 at 08:29
  • How much space/capacity do you need? – ewwhite May 08 '13 at 13:16
  • Slight side node: Platter drives used CHS addressing a long time ago, but no modern drive actually uses it. CHS can only address ~8GB of drive; anything larger than that is using LBA. – Chris S May 08 '13 at 13:29
  • So what did you decide to do? – ewwhite May 13 '13 at 19:08
  • They're going to choose between industrial SSDs and CF cards. For their low cost, I think CF is going to be tried first, but if they wear out too quickly or are not OK for other reasons, I'm sure they'll opt for an SSD with IDE connection. – Knelis May 14 '13 at 07:34

5 Answers5

25

I would use an industrial IDE SSD...(another option). It doesn't sound like you need much space, and there are SSDs made specifically for this purpose. I would NOT bother with IDE adapters and consumer-level SSDs for this application. If you do go for compact flash, again, try something that's purpose-built for the application.

ewwhite
  • 194,921
  • 91
  • 434
  • 799
  • 1
    IDE SSDs.. That's like putting a 4.2l V8 engine in a golf cart. – Tom O'Connor May 08 '13 at 11:55
  • 19
    Not really. When you have a significant investment in specialized hardware, you have to maintain it in whatever manner is possible. I do cringe when I see RS232 serial communication and Windows 2000 control interfaces on a *$3 million* tomato-sorting machine, but it is what it is. – ewwhite May 08 '13 at 12:30
  • 4
    +1 A manufacturer offering a specific part such as this should be able to provide better support in this situation - specifically, they must have encountered the problem with spindle settings for old BIOSes – Colin Pickard May 08 '13 at 15:21
  • Thanks, I've also suggested this to them. It's now up to them to decide what they will end up using. I guess they'll try CF first because of the relatively low cost, but these SSDs may be the best alternative, therefore I'll mark your answer as the correct one. – Knelis May 14 '13 at 07:35
19

Does it have to be a SATA SSD? CompactFlash cards are pin-for-pin compatible with the ATA standard 1.

Which means you can use a passive electrical adapter to connect one to an IDE cable (or two!). Would this give you enough space (I've seen some mahoosive CF cards...), I wonder.

It'd give you the reliability of solid state memory, and the oldness of IDE/ATA.

Tom O'Connor
  • 27,440
  • 10
  • 72
  • 148
  • 1
    For what it's worth, I have used CF cards connected via IDE adapters many times in the past. They always worked flawless and excellent. However, there is one drawback: They have no wear leveling controllers, meaning that traditional operating systems tend to write the same spot again and again and wear the cells out, so you end up swapping the cards possibly even more often. In my cases, I used specifically configured Linux distributions that kept most of the stuff in RAM disks and wrote the relevant stuff back in long intervals, but that's not going to work everywhere. – Sven May 08 '13 at 08:52
  • I suspect that it's the only solution that might work. If it were a newer mobo, then the answer is boot from iscsi. – Tom O'Connor May 08 '13 at 09:00
  • I wonder if it might be possible to design a hard drive damper, for example, suspend the drive at the corners with pairs of damped springs.. and use a flexible long cable. – Tom O'Connor May 08 '13 at 09:01
  • 1
    Such stuff exist: http://www.amazon.co.uk/Sharkoon-Hard-Disk-Silencer-Fixer/dp/B000FLR8PE/ref=sr_1_1?ie=UTF8&qid=1368003834&sr=8-1&keywords=B000FLR8PE – Sven May 08 '13 at 09:04
  • Interesting! I was thinking of something a bit less rubbery, but that's definitely the idea. – Tom O'Connor May 08 '13 at 09:23
  • I think we'll have to give up trying to get the SSD working. I've tried almost every possible combination of settings in the BIOS, without any luck. We'll give CF cards a try. The system only needs 2 partitions of 2GB each, so it shouldn't be a problem. Thanks for the tip. I'll accept it as the answer for now. – Knelis May 08 '13 at 10:12
  • 1
    Come back and let us (me!) know how it goes. – Tom O'Connor May 08 '13 at 10:47
  • I'm slightly skeptical this is going to work any better than the SATA-IDE adapter due to the necessity of knowing what values are needed to spoof the platter geometry for manual entry. Checking packaging images for 3 different brands on Amazon I didn't see those values anywhere; which'd make providing them to the BIOS difficult. For cost reasons though it's probably worth trying before shelling out of an industrial drive as suggested by ewwhite. Neither source he linked to had readily visible prices, which is not a good sign. – Dan Is Fiddling By Firelight May 08 '13 at 13:09
  • 1
    @DanNeely Oh, the Pretec ATA/IDE SSDs are cheap. Under $100US if you look online. – ewwhite May 08 '13 at 13:15
  • 2
    @SvW: [Wikipedia](http://en.wikipedia.org/wiki/CompactFlash) says that at least some CF cards have wear leveling these days. If you can't find one that does, you could always plug an SD/CF adapter to your CF/ATA adapter and use an SD card. Bonus points for using a MicroSD card in a MicroSD/SD adapter in the SD/CF adapter... – Ilmari Karonen May 08 '13 at 23:28
  • 2
    They make CF cards specifically intended for industrial applications, to be used as a hard drive. They're more like tiny SSDs then a normal CF card, but they're in the CF form-factor. That may be worth looking into. – Fake Name May 09 '13 at 08:05
2

I use an IDE SSD in one of my older laptops* (not from the 1990s, its from 2005). It works completely flawless so far. I chose the Super Talent DuraDrive ET2 with 128GB which was about 140€ (seems to be much higher on amazon.com). If you are aiming for industrial machines, I don't think you should care about a few hundred dollars and go for drives made for that environment (see ewwhite's answer). Even if the hardware could be identical, the support surely isn't.

*Did it mostly out of curiosity, and it did give a nice responsiveness boost (not that hard ... the laptop wasn't build for Win8 back then). The laptop is mostly used for in-the-field audio recording, the reduced noise and increased shock resistance helped to somewhat "justify" the "investment", mostly curiosity though ;)

linac
  • 121
  • 2
0

we need to specify some values, called 'HEADS', 'SYL', 'CLUSTER', and 'LANDZ'. Unlike traditional HDDs, this drive obviously has no platters. Is there a way the drive mimics these things on IDE and can we somehow find out what these values should be for our specific drive?

Does your BIOS not support "HDD auto detection" ?

My understanding is that, for compatibility with older IBM-PC compatible BIOSes such as your system, every IDE drive with over 8 GB of storage uses fake cylinder-head-sector values of (512 bytes/sector)×(63 sectors/track)×(255 heads (tracks/cylinder) )×(1024 cylinders)=8032.5 MiB -- the so-called "8 GB limit".

My understanding is that IDE drives with less than 8 GB of storage often specify 255 heads (tracks/cylinder) and 63 sectors/track and however many cylinders are needed to fill the disk.

The landing zone on a hard drive is usually near the inner diameter -- i.e., at or beyond the largest track number.

My understanding is that many DOS-like operating systems use FAT16. With large disks, people generally set up FAT16 partitions with the maximum number of sectors per cluster -- 2^64 sectors per cluster. With the standard 512 bytes/sector, this results in 32 KiB per cluster. FAT16 is limited to at most 2^16 = 65536 clusters per partition. That is why FAT16 is limited to a maximum partition size of about 2 GiB.

I've seen IDE hard drives with a "compatibility" jumper. With the jumper in the default position, the hard drive correctly reports its actual size, which confuses early operating systems that never expected to work with such a huge hard drive. With the jumper in the "compatibility" position, the hard drive lies and says it's much smaller -- it wastes some space, but at least those early operating systems can now run.

it still doesn't boot and just says there's no drive connected.

Can you tell the difference between "no hard drive detected", vs. "found the hard drive, but it hasn't been formatted yet", vs. "I see a boot partition on this hard drive, but there's no operating system on it to boot"?

Can you boot the machine on some other media (perhaps a live CD or another hard drive with the original operating system?) and then try to format the new, blank hard drive? (That way Sector 10 will be exactly where the machine expects to find Sector 10, no matter how messed up the settings are).

David Cary
  • 398
  • 3
  • 16
0

Dunno if it's the case with all SSDs, but my Samsung 830 EVO actually reports a head/track/cylinder count for backward compatibility:Piriform Speccy