Shop Learn P1 Docs P2 Docs Events
Project kiloByte - maybe... — Parallax Forums

Project kiloByte - maybe...

AwesomeCronkAwesomeCronk Posts: 1,055
edited 2020-07-31 20:19 in Customer Projects
I have no idea if this project will ever come to fruition or not, but I am willing to try it!

I have wanted to try my hand at building mechanical memory since I saw a video on a wooden Turing machine. It used a belt of wood planks that had pegs in them that poked out either side. His machine would go through and poke them on one end or the other to slide them around And change them to 0s or 1s. I want to do something similar, but, as is the nature of me, I dream far out. As it stands, this project will be a chain of 8bit links, each a half inch in length and theoretically about 2-4 inches wide. They will have rotating bits in them that can be twisted by a cross shape and with be able to spin 90 degrees. The link will have a gap to that a photo transistor and laser diode can be used to read the bits, while a servo motor can be used to write them.

And, to top it all off, there will be a p1 controlling it. And it will behave like a usb flash drive, only 1kB large. Given the size limitations (I don’t want to assemble 3 million links by hand), I will likely format it with FAT16.

Right now, this is only hearsay, as my computer is down and I have a half dozen other unfinished projects, but this would be great fun to build! As I see it, I have 4 steps to do:

1. Figure out a design for the data belt. I need to figure out how to get 8 bits read/write capable in a link and then 3D print 1024 links. It will need to be able to roll it up without messing up the data.

2. Get the read/write mechanism working and build reels for the belt. This belt is probably going to be about 42 feet long. I want to store it a bit like a vhs or cassette is wound.

3. Learn PropC. I would rather tackle something like this in a sorta familiar language. That and I never could get a handle on spin. If I could get ersmith’s tool going, (I am sorry I cannot remember it’s name) or at least the compiler it uses, I could use PropC and Spin libraries if needed!

4. Get the prop to mimic a USB disk. This will be the tough part. I either need to find an ic that will convert usb disk commands to read/write commands or figure out how to connect the propeller directly to usb.

5. Format it with FAT16! :P

Please note that it will be a long time before this takes off and I may never finish it. I am welcome to ideas on how to do this. I would like any help on mimicking a usb drive that I can get. I should have my computer fixed and be able to write code in about 5 days.


  • This is kinky and wrong on so many levels, you MUST do it! :)
  • ... I saw a video on a wooden Turing machine. ...
    I had to look that one up. It's REAL! Hand cranked, no electrical parts, totally amazing:

    Thank goodness there are people out there with the kind of free time available to do stuff like this!

  • Certainly not me! I don’t have the free time and yet I still try to do it...
  • mparkmpark Posts: 1,291
    ... I saw a video on a wooden Turing machine. ...
    I had to look that one up. It's REAL! Hand cranked, no electrical parts, totally amazing:

    Actual cogs!
  • Oh dear goodness
  • Cluso99Cluso99 Posts: 18,065
    Some people have too much time on their hands.
    Still, would be nice to make one of these with a 3D Printer.
  • @Cluso99 thats the thing! I have no idea how I’m going to find the time for this! This will be one of those “set it up and leave it printing” deals that runs over a few months...
  • At a Maker Faire on the West Coast a few years ago, there was a very large one of those.... It promptly printed out a bio of the man. It cause a heck of a lot of controversy in that visitors to his booth were convinced that there was a computer behind it who did all of that. The printer was in fact a carefully repurposed typewriter. That's right a typewriter.

    AC, in your copious free time look up a guy named Charles Babbage. I can tell you that a good friend won't be involved in that guy's activities but it will make more sense if you do.
  • And let us not forget, Phil the talents in woodworking to machine the controls needed to make the whole thing, and to assemble it.
  • Babbage is actually also a huge amount of the inspiration behind this! That man was on another level!
  • William Gibson’s “The Difference Engine” is a good fiction read for anyone who likes mechanical computing.
  • AwesomeCronkAwesomeCronk Posts: 1,055
    edited 2020-08-06 01:19
    Update - I am holding off on USB Mass Storage for now, maybe forever. Turns out kiloByte will be too slow by magnitudes of over a minute for USB to be OK with it. drat. Oh well, I can write middleware for file transfers. I just don't know if I want to try implementing a filesystem via .iso files and writing their contents to kiloByte or if I should just do raw data and store only a single file's contents.
  • I didn't see this thread earlier. It explains a lot.

    I would be concerned that the filesystem would consume all of the available memory.

  • Well, apparently fat16 will work on a 32B drive, but I have no idea if that’s true. I tried making a 1kB partition on my 512MB USB drive the other day, but Windows Disk Manager wouldn’t let me make one less then 8MB. So I’ll probably just be using middleware to achieve data transfer.
  • kwinnkwinn Posts: 8,697
    That is a very ambitious project. I would using a Propeller board with USB on board as the controller/interface between the PC and the disk. I think a machine like that made from furniture grade lumber and good finish would be a thing of beauty but here are a lot of parts to produce so using stock items would help to speed things up. For instance the belt could be cut from wood dowels and the square blocks from 1x2 wood trim. I’m also wondering if the wood belt could be replaced with a paper tape reader/punch. That would save a lot of time and work.
  • Instead of hooking it up to a PC and thereby corrupting your beautiful creation with new-fangled electronical technology, why don't design your own mechanical wooden computer and use this as its RAM? Perhaps use a P1 with servos and sensors to test it, but once it works, make the whole thing mechanical!
  • This may have been missed before, but I plan to 3d print this... I don't have the woodworking skills for this! I don't want to do a paper tape because I want to be able to overwrite the data as I please, and the mechanical aspects were the original reason for this project.

    Yes, very ambitious!
  • AwesomeCronkAwesomeCronk Posts: 1,055
    edited 2020-10-21 13:53
    This project is moving to the “maybe later” category until I find a way to 3D print 1024 chain links and 8192 bits. I also just realized that if the links are half an inch long and two inches wide, the assembled chain will be 512 inches long, or 42 feet 8 inches. 😬 I need to find some space in my room for that and a bigger motor to turn the belt.I may be able to break up the belt into four belts, but that will mean building multiple read/write heads. Not an ideal situation because it means more io used.
  • kwinnkwinn Posts: 8,697
    You could always make the chain links out of brass tubing and use wood dowels as both link pins and data bits. That would reduce the length by half or more. The chain could also be hung from multiple rollers so it takes up less space and is easier for the chain to move.
  • That’s a great idea, though I don’t have the wherewithal to build each link by hand. I think I can take the brass tubing idea and modify what I was thinking of with the 3D printed links to slim it down. I’ll see how that goes. The push pin idea is a good one; I may consider using it over the screw mechanism.
  • kwinnkwinn Posts: 8,697
    edited 2020-10-22 16:34
    While 3D printing may involve less work for you it will be quite slow for as many links as you will need. Going with plastic or brass hobby tubing may be less work. Two tubes can be glued or soldered together and then cut into short (lets say 1/4") lengths to act as the links. One inch long dowels would then be used to connect the links in a chain. A couple of simple jigs to hold the tubes, one for glue/soldering, and one for cutting the pair of joined tubes to length would make the work go much faster.

    EDIT Each bit could now be 1 inch wide and the chain 256 inches or 21.33 feet long
Sign In or Register to comment.