CS Project

What is the CS Project?
    The basic goal is to create a computer from scratch that does most of the things that a commercial computer does. The hardware and software are largely designed by us, using whatever techniques we come up with.

(This area is outdated, we now have a new approach that is detailed in the propcomp section)

How does it work?
    The project is divided into separate modules, because that seemed like the easiest way ahead and can use hardware that we have already used. The core modules are video output, keyboard input, memory storage, and a central unit to link and synchronize all the modules. There are also extra modules that may be added but are not necessary for the basic functioning of the device. These include sound, printer/plotter, and internet modules. To see what the modules and the rest of our setup looks like, check out the media page here.

The Modules
    Video Output-
        The video output module currently uses an ezVid module from MultiLabs. This is the part that we started first, and it's the one that has given us the most trouble so far. When we began I had the idea of using an atmega32 microcontroller to do all the video because I found the site of this guy that had accomplished it before and was putting everything up as open source. I downloaded the code and took a look at it, and although it was way too complex for me to fully decipher, I decided to try and get his system working anyway. This started a month long process of buying parts, breadboarding them, chasing out bugs in the code, and then getting it flashed and working on the mega32. What we ended up with was a fully functional serial controlled video system with a full ascii character set and basic line drawing and dot placing abilites that we worked out ourselves. There was only one problem, the video that the mega32 was putting out was in PAL format rather than NTSC format that is needed for it to work on U.S. televisions. When I finally figured this out I almost threw the whole thing out the window and gave up on the project all together. We had worked weeks on this system, and I had put several dozen hours of coding into it, but in the end it wasn't useful for anything unless we bought a tv from russia or another county that uses PAL (which we actually almost did). This whole debacle led to us buying the ezVid module which has proven much more reliable and easily interfaced. The ezVid module isn't supposed to be permanent, but until another method is figured out to do the video, it's staying.

    Keyboard Input-
        Uses an atmega168 key logger board from www.sparkfun.com. The tutorial code they have for the module has been slightly modified to send the keys that are pressed over serial to our temporary Arduino Sync Module. Right now we are having odd problems with this, the information being sent over serial is consistent but is all over the place and some keys don't show any response at all. I suspect that this is caused by the keyboard module sending over the keys in hexadecimal format which, when displayed through my extremely simple serial router program, creates nonvisible characters like line endings and return symbols. Should be remedied soon.
    Memory Storage-
        We are currently planning on using a VDIP1 serial module from FTDI. Saves files in plain text onto a flash drive up to 2 gigabytes.
    Sync-
           The sync module may be the megaduino that is coming out soon. Because it has four complete uart lines, we can have up to 4 modules. This is enough for keyboard, video, sound, and an extra for expansion.