Shop OBEX P1 Docs P2 Docs Learn Events
Propeller hooked up to a hard drive — Parallax Forums

Propeller hooked up to a hard drive

kevin101kevin101 Posts: 55
edited 2007-11-02 13:34 in Propeller 1
Would hooking a hard drive to a bunch of propellers be a possibility. I read chip's on another topic the idea to hoop up a couple hundred of propellers to make a super computer. Wouldn't you need a hard drive for data storage? I have no idea what pins to use or how fun (not really) the connections would be. I bet though, that if you constructed a super computer out of inexpensive processors, i bet you could hook up a hard drive just for fun.

Comments

  • deSilvadeSilva Posts: 2,967
    edited 2007-11-01 00:57
    It would be nice if you could elaborate on details...
  • crgwbrcrgwbr Posts: 614
    edited 2007-11-01 00:58
    Not to crush your dream of a dirt cheap Prop Super Computer, There' a couple things you should probable realize about it. 1) While the Prop by itself may be cheap, to get to super computer standards, you need several hundred or thousand props. At $12 each, your looking at roughly $12,000 just for the processors; then you'd have to manufacture to PC boards and purchase countless other ICs and components as glue. 2) I asked Chip about a SATA interface for the prop (you can probable find it on the forums if you look hard enough). Minus his long explanation, his answer was basically no. The SATA bus has speeds starting at around 1.5 Gbps. The current prop is doing good o get com speeds of 1 Mbps. Therefore, all you'd have to do is rewrite the Full Duplex Serial routines to operate at 1536 times there current speed. Lol, sorry about the sarcasm, but the point remains; a modern HDD is just too fast to implement on the prop. Sorry if this is discoraging to you, but I do beleive it is the truth. However, I imagine a high capacity SD card has more storage thatn you could ever use (about 16 GB). You should try starting out with that,

    Regards,
    Craig

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    "... one of the main causes of the fall of the Roman Empire was that, lacking zero, they had no way to indicate successful termination of their C programs." -

    "If Python is executable pseudocode, then perl is executable line noise."

    "The best accelerator available for a Mac is one that causes it to go at 9.81 m/s2."

    "My software never has bugs. It just develops random features."

    "Windows isn't a virus, viruses do something."

    "Programmers are tools for converting caffeine into code."

    "Enter any 11-digit prime number to continue."
  • RaymanRayman Posts: 14,219
    edited 2007-11-01 01:17
    A few thousand Props still wouldn't be a supercomputer! Supercomputers are for floating point operations. This RISC CPU is all the way at the other end of the spectrum. It doesn't even have a multiply instruction!

    But, you are correct that you'd need mass storage if you did have one... Right now, I'm thinking that Rokicki's SD card interface is the best way to go for the Prop.
  • deSilvadeSilva Posts: 2,967
    edited 2007-11-01 01:24
    The performance aspect has been discussed in depth in the (?) supercomputer thread. You will need around 10 million Props to make it into the "Top500" smile.gif

    If someone is looking for a more potent chip I think the Tile64 from TILERA will be the best choice.
  • hippyhippy Posts: 1,981
    edited 2007-11-01 01:51
    You could probably hook up an IDE drive, Super Computer or otherwise.
  • kevin101kevin101 Posts: 55
    edited 2007-11-01 01:57
    um...........ok....
  • deSilvadeSilva Posts: 2,967
    edited 2007-11-01 01:58
    You can OF COURSE hook up an IDE disk, there had never been a question for that I think... But it will be NOT fun smile.gif
    www.pjrc.com/tech/8051/ide/wesley.html
  • Mike GreenMike Green Posts: 23,101
    edited 2007-11-01 02:12
    Kevin101,
    You can connect any of several USB host subsystems to a Propeller. The FTDI Vinculum VDrive2 is one such. GHI Electronics has its USBwiz and uALFAT devices. Any of these will work with a USB hard drive plugged into them and you can read directories and read and write files.
  • Lee MarshallLee Marshall Posts: 106
    edited 2007-11-01 03:35
    if you are worried about wearing out flash memories(that's what has stopped me developing a PropOS), you could use one of those microdrives(mini harddisks in the form of a CF type-II card).

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    I hear and I forget. I see and I remember. I do and I understand
    -Confucius
  • rjo_rjo_ Posts: 1,825
    edited 2007-11-01 14:25
    kevin101,

    Don't let all of this talk confuse you.

    What you could end up with is a SuperController... not a supercomputer. There are no benchmarks that allow a fair comparison of supercomputers to supercontrollers... they are different animals. There are good reasons to build a supercontroller. AND there will always be alternatives to building one with a Propeller. BUT if you start now, learn everything you need to know ... which takes a while, you won't have wasted one moment of your time. Your study will return dividends beyond your wildest imagination, and you will have been studying the right controller, at the right time, with the right focus[noparse]:)[/noparse]

    Hooking up a USB thumbdrive seems like a good way to go. I don't know what the throughput would be, but it is do-able. And if you do it now, rather than later, you will be well ahead for having done it.


    Rich
  • hippyhippy Posts: 1,981
    edited 2007-11-01 14:41
    deSilva said...
    You can OF COURSE hook up an IDE disk, there had never been a question for that I think... But it will be NOT fun smile.gif
    www.pjrc.com/tech/8051/ide/wesley.html

    I guess a lot depends upon what one's idea of fun is. I'd say it would be a lot of fun, but probably some hard work as well.

    A lot of the code I expect would be common for IDE/MicroDrive/CF Card so I can see a use for that even though SD and VDrive would be the easiest to interface to. I see a lot of benefit in re-using older technology than landfilling it and the more examples of how to connect anything to the Propeller the better. An IDE interface opens the door to CD-Rom and DVD control, and that could take the Propeller in quite unexpected directions.

    I see all potential projects as beneficial, even if it does just prove it's neither sensible nor the best way forward.
  • crgwbrcrgwbr Posts: 614
    edited 2007-11-01 14:58
    Based on that article, IDE interfaces would definitely not be fun, but probably possible. From a practice point view, what application would really need more storage than flash memory can provide. Maybe I'm not realizing something, but even a prop data logger taking many reading from different sensors would take a while to fill up an SDHC card or a large Thumb Drive. I realize that there's something cool about having 500 GB of storage for a propellor, it just seems like the extra power consumption, shock vulnerability, and cost makes flash memory much more attractive. And besides, unless we start using FAT32 instead of FAT16, we can only access about 2 GB anyway.

    just my $0.02,
    Craig

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    "... one of the main causes of the fall of the Roman Empire was that, lacking zero, they had no way to indicate successful termination of their C programs." -

    "If Python is executable pseudocode, then perl is executable line noise."

    "The best accelerator available for a Mac is one that causes it to go at 9.81 m/s2."

    "My software never has bugs. It just develops random features."

    "Windows isn't a virus, viruses do something."

    "Programmers are tools for converting caffeine into code."

    "Enter any 11-digit prime number to continue."
  • Peter VerkaikPeter Verkaik Posts: 3,956
    edited 2007-11-01 15:10
    I have once hooked up a CF card to a Javelin via an I2C interface. Needless to say
    datatransfer was VERY slow, but it worked.

    I attached the java files that hold·the required routines to read and write sectors.
    I am sure the Propellor can do much better if the interface is done directly from
    Propellor pins. You need 16 pins, but CD1 and BUSY can be left out, to make it 14.
    Be sure to install 1k series resistors because CF cards output 5V signals.
    (See attached schematic).

    regards peter
  • David BDavid B Posts: 591
    edited 2007-11-01 15:34
    Some time ago I ran a hard drive from a propeller, using the spinStudio beta platform.

    I did it for hobby reasons - to have fun, and to learn how to do it, rather than for business reasons, for some specific project or purpose.

    It was a lot of fun, especially when I got that first text file to scroll down the LCD.

    It was much easier to interface than an SD card. The main difficulty was the number of wires to connect. Connecting directly from the propeller to the hard drive connector took just about every IO pin other than those used for programming and an LCD display.

    I'm still hacking around with hard drives, but not directly from the propeller. I made an SX52 interface board that the HD plugs into and that presents a bidirectional byte-wide IO bus, like the PC enhanced parallel port, and I'm just now building the companion 5 volt bidirectional byte-wide parallel port onto my homemade propeller protoboard to communicate with it.

    There's no need to stick with FAT filesystems. It might be easier (or more fun) to make a propeller file system instead, depending on what the purpose of the HD is; whether you plan to share the HD between the propeller and a PC, or not.
  • parts-man73parts-man73 Posts: 830
    edited 2007-11-01 16:40
    I remember seeing the photos of that project. That was allot of wires!!! Would it be possible....instead of a 8 or 16 bit wide data bus, send the data serially and use a shift register? Would that get the data out fast enough for the IDE interface?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Brian

    uController.com - home of SpinStudio

    PropNIC - Add ethernet ability to your Propeller!

    SD card Adapter
  • hippyhippy Posts: 1,981
    edited 2007-11-01 18:21
    parts-man73 said...
    Would it be possible....instead of a 8 or 16 bit wide data bus, send the data serially and use a shift register? Would that get the data out fast enough for the IDE interface?

    Should do, transfer doesn't have to be done via DMA and can be done by polling, as slow as you want it. You'd need a shift-register to return the data being read so you've added quite an overhead with a significant reduction in transfer speeds.

    You'll still have to wire-up those lines somewhere.

    Added : Take a look at the I2C link in Peter Verkaik's post - that's what he's done for CF.


    It might seem a shame to 'waste a Propeller' because so many IO lines are tied up but it has some advantages if you can dedicate a Propeller to the task; that can give an SPI or I2C Slave interface to the main controller, and you can do some degree of caching to help speed up transfer rates. If it can be gotten down to just 14 pins that's not so bad anyway.

    I'll agree that I cannot see many applications which would need a hard disk and SD would likely suffice. "Cool" would be a good enough reason to do it, and that satisfaction like David B got for achieving a result. Another project to add to the list smile.gif

    Post Edited (hippy) : 11/1/2007 6:25:58 PM GMT
  • David BDavid B Posts: 591
    edited 2007-11-01 18:31
    There's no speed requirement that I know of for the IDE interface, so I think it would be possible.

    As I hack around with MMC/SD cards and DRAM and hard disks, it seems like I'm continually struggling with what's the best trade-off between speed and interface hardware complexity and the number of wires in the interface. It's like that old joke about software design - "you can have it good, fast, or cheap: pick any two".

    I'm hoping that the byte-wide interface I'm working on now will work out for most devices.
  • Peter VerkaikPeter Verkaik Posts: 3,956
    edited 2007-11-01 19:07
    There is no speed requirement. The only requirement is that a sector must be read or written
    in total, because it is not possible to skip part of a sector. Besides the I2c interface I also made
    an interface using a SX28. Problem there was not enough ram to hold a complete sector
    so I ended up accesing a sector in 16 byte chunks. The propeller can hold an entire sector,
    so you can have a very cheap interface: just a male header and some resistors.

    regards peter
  • bambinobambino Posts: 789
    edited 2007-11-01 23:38
    In interfaceing the propeller directly to the hard drive, what about the bi-directional lines?
    Sure you can ease 5v levels down to the prop using a resister, but can the prop exceed the Vh threshold going back through the resistor to the hard drive?

    This was discussed a little over a year ago and I am glad to see it resurface. No, efficently there is no reason for it, but for some like me, most of my "of the top of my head" ideas are not in the budget. They get built from canabolized computers, monitors, microwaves etc.

    With the amount of hard drives stacking up around here I would love to see more done with them than target practice.

    "Although the disc's inside do look really cool when you hang them from your rear view mirror!"scool.gif



    PS. Thank you deSilva for the link. I have this already from this same guy, but it was in a white page. This is much easier reading!

    Post Edited (bambino) : 11/1/2007 11:55:23 PM GMT
  • David BDavid B Posts: 591
    edited 2007-11-02 00:36
    In describing my propeller-hard drive connection, I used the expression "directly" sort of casually.

    In detail, I used a couple of 3-state TTL drivers with schmidt inputs to convert the propeller 3.3V to 5V for driving the HD data bus. For the reverse direction, I had jumpered each of the 16 TTL buffers with a 3.3K resistor, so when the chip was tri-stated, and the propeller ports set to input, the HD could drive the propeller through the resistors. That was for the 16 bit data bus. Probably an equally good alternative might have been to have the propeller drive a couple of bidirectional 5V buffers, like the 74HCT245, through 1K resistors, but I didn't try that.

    There are also a bunch of address and control lines on the hard drive. I had the propeller operate a shift register to drive the 5 address lines (just to reduce the pin count a little, from 5 to 2), and connected a few more propeller lines through another schmidt-triggered TTL buffer (74HCT14) to drive a few other lines directly, like the 3-state enable, and the HD READ, WRITE and address latch pins. I think I ignored some of the hard drive status pins.

    I've since taken that interface apart, so I'm working from memory and could be wrong in some of those details, but that's the general idea of my "direct" connection.

    I really meant "direct" in that there was no major remapping of the 16-bit data bus and control lines; they were controlled by the propeller. In contrast, the SX52 interface I've been making receives requests to read a sector by address, then it performs all of the HD control, returning 512 bytes over its 8-bit bus. I think of that as more of an indirect control of the HD.
  • rjo_rjo_ Posts: 1,825
    edited 2007-11-02 02:00
    kevin,

    I can still remember when a good friend of mine (and an IBM salesman) said to me... that's a 10 MEGABYTE HARD DRIVE!!! Who would ever need more than that?

    We have some really talented gamers here. 3D photo-realistic backgrounds can be pre-computed and stored on a hard drive... and right now there is nobody doing it.


    Rich
  • rjo_rjo_ Posts: 1,825
    edited 2007-11-02 02:49
    OOOPS

    I should have said "Pre-render" 3D spaces in full stereoscopic glory[noparse]:)[/noparse] stored as mixed maps and video data and re-rendered with minimal fuss[noparse]:)[/noparse] For backgrounds purposes ... of course. Full interaction would require a couple of Props, but isn't really required to do something new.

    Rich
  • ThePenguinMasterThePenguinMaster Posts: 89
    edited 2007-11-02 13:34
    it isnt too hard to hook up a hard drive.. use an 8225 chip so your prop only needs a few lines taken.. 5 i think.. and doing a 3v-5v bi-di line will be a lot easyier.. directly interfacing this chip to the hard drive only leaves i\o open. im actually workign on a project with someone else on this forum to make a hard drive driver.. in the end i would like it so it can use simple commands like cd.. dir ect.. much· like ms dos.
Sign In or Register to comment.