Slashdot Mirror


Building Your Own Digital Device?

Skaven04 asks: "After finishing up my Digital Design class this semester I've suddenly got the urge to build something really cool. I'm leaning toward a processor/pda/calculator thingamajig. Not really a processor, considering that it wouldn't be following any set standards, like x86, but basically a machine that I can program with my own assembly language, have keyboard input, and (most likely) an LCD output (like on your TI85 or whatever). What I'm seeing in my head right now is an 8-bit design with an ALU (like the 74LS181) as the centerpiece and naturally a few 64K RAMs and various registers, counters, etc. as necessary to implement my command set. Has anybody else out there ever undertaken this kind of project? What are some sites I could visit to get a good outline of the best way to approach it? What are some good places to get the parts cheap? Any suggestions on displays? Links to similar projects?"

11 of 35 comments (clear)

  1. work by dstanfor · · Score: 3, Interesting
    While this sounds cool, it would end up being a ton of work. However, you can do some searches at slashdot or google for free VHDL cores and you'll find some pretty interesting things. I'm assuming you'd like to program an FPGA instead of an ASIC and instead of using an off the shelf processor so this would be the place to start.


    Probably a better option, though, will be to continue taking design courses. look into a computer architecture course. In mine, we made a non-pipelined CPU in VHDL. Also look into what you may do for your senior design course. This is where you'll get free reign over a lab and a budget from school.

  2. Spec it out by m_evanchik · · Score: 4, Insightful

    For any project, the most important aspect is to have some clear objective.

    A cool digital thingamajiggy just doesn't cut it. I'd say your first step is to get ideas for a purpose for your thingamajiggy first. Ask your fellow students and professors what they would like but can't find already made.

    Once you have a purpose specced out, you can make a design to match that purpose. Even just making one modification to a design type can be cool. Like a calculator with a cool-looking or durable form factor (great excuse to play around with a plastic mold-maker), or unique input or output options.

    Ultimately you should think about your end user and what will serve him or her best for some list of tasks. Design for the nontechnical humans.

    I know I'm giving just added questions rather than options, but you will find when you get out of the classroom that in the best designs form follows function. Figure out the function and then design around that.

    1. Re:Spec it out by m_evanchik · · Score: 2

      So what are the important factors for you?

      Should it be durable? Will you want to take it to the beach, operate it in a rainstorm?

      How small does it need to be, do you have to fit it in a pocket?

      How about lighting? Do you want to be able to use it without additional lighting? Can you use it in a dark room? Will the input be illuminated?
      Will it be useable in very bright conditions (some LCDs wash out in sunlight?

      Power consumption? How long should you be able to operate it without a recharge? Will it use batteries?

      And will you want it to be upgradeable? Will you want input other than keyboard? I would suggest at least some sort of link, like a serial port, or something, if you have to input lots of data. You don't want to have to manually input a large data array.

      And how about output? (this can usually be combined with your input) Do you want to download results or work unto another computer?

      It sounds like you want a mobile programming platform, sort of like a handheld dumb terminal.

      Anyway, it sounds like a cool project and I wish you the besty of luck. Just make sure you explore all the design questions before you break out the soldering iron, becase by then you're probably already committed to the design.

      And of course, you'll learn from your mistakes, so set a schedule and deadline. You can always make another one after the first, but you need to complete the first on first.

    2. Re:Spec it out by m_evanchik · · Score: 2

      up yer nose with a rubber hose!

  3. Have fun! by stienman · · Score: 2

    You're obviously doing this for fun. Don't get any crazy ideas about making it useful for other people. There are far better and cheaper things you can get now. (think $100 palm)

    So, for a display you can start off with the expensive $50 64x128 graphics LCD. (can't remember the source - email me), but I'd stay away from FPGAs or ASICs, they tend to suck current, and you'll be changing batteries every day. Look for an inexpensive 16 or 32 bit chip (mitsubishi makes a /very/ nice line of flash 16 bit chips for under $20), hook it up to the LCD, slap a touchscreen on there, and you'll still have tons of room to add other gizmos.

    -Adam

    1. Re:Have fun! by stienman · · Score: 3, Informative

      You can get that LCD from jameco, 128x64 Graphics LCD

      The current ratings on the web site are wrong, check out the data sheet first. Very low power.

      As far as designing your own chip, the only suggestion I'd have is to pay very careful attention to power consumption which is (relatively) very high for nearly every configurable chip you can get. You may end up looking towards CPLDs.

      -Adam

  4. hello world by DaoudaW · · Score: 2

    I understand what you are feeling. You've learned some cool stuff and now you want to do something with it. Think of it as a "hello world" program in hardware.

    I remember going to a local college's "Engineering Fair" when I was in highschool. Lots of cool stuff:
    A tic-tac-toe computer made out of discrete parts
    A program which printed random poetry.
    Various "Op-art displays on a monitor (This was in the early '70s)
    ...

    A couple of suggestions:
    Implement a simple two player game in hardware. Like the little poker calculators.
    Check out sites like Viridian which have thingamajiggy design contests from time to time.

  5. Re:Best place to get parts? by m_evanchik · · Score: 2

    I gotta confess, I sometimes check out the electronics parts in the back of Radio Shack stores. I just browse around and get ideas. It's sorta like browsing around a bookstore.

    Is radio shack the only retailer that sells electronic parts piecemeal? What are the good, reliable vendors on the 'net?

  6. Build up in a modular sense by Matt_Bennett · · Score: 2

    Be very careful about trying to do too much at once- you can quickly make a system that is just too complex to debug. Try to design in small, testable parts that you have the tools (scope, DVM, etc.) and the knowledge to debug. For this type of design, wire-wrap works great. It lets you try out things easily and make changes quickly. You will get things wrong, you will mis-wire, and so forth. Avoid high speed clocks (>10 MHz) at this point- they can throw all sorts of weird things in your way that are difficult to track down. Stay away from those white plastic proto boards that you can plug wires into- unless you are willing to run with very slow clocks (less than 1MHz), since the parasitic capacitances and leakages can also do very weird, unpredictable things.

    I tried to do a similar project a few years ago with a dual-slope A/D converter. A project like this can be very useful in honing your design skills, but it can also very easily frustrate you. This is the project that makes me be very careful about what projects I tackle. You want to learn, but you also need some success in the meantime to keep you going.

    For a design like this, something like an FPGA based project is a good idea since there are good simulation tools available, and you can very quickly re-design. Also, this will be a lot closer to what you will be doing in the "professional" world if you do go into digital design. The tools are expensive, but you may be able to get discounts or borrow from your school or the local FPGA rep (Altera and Xilinx are the two that come to mind). They know that once you graduate, you may have infuential power over design decisions, so they will be willing to listen.

  7. Want some real fun? by cr0sh · · Score: 2

    Try to find old copies of older (1970s, early '80s) TAB Books - especially the robot books by David L. Heiserman or Frank DeCosta (actually, look for some of my earlier posts on these books - I give all of the ISBN info in them). These give a ton of design info - on the Heiserman books details a full 8 bit processor design based around the 8080 (I think that is right).

    Anyhow, I know you want to go even deeper from scratch, and get down into the dark and dirty underworld of processor design. If that is what you want to do, go for it - I am sure it would be an interesting thing to do to design your own CPU and instruction set.

    I tried to find a link to a site that had such a design up - I remember I found the link in another /. article - I remember the design was pretty monstrous, but was exactly what you were trying to do. If I find it, I will post to this thread...

    --
    Reason is the Path to God - Anon
  8. Re:Best place to get parts? by ameoba · · Score: 2

    The All Electronics Corporation has a decent online presence. They might not have everything you want, but when they do, it's cheap. They often have things you may not know you wanted, strange assemblies pulled from unsold hardware and whatnot.

    --
    my sig's at the bottom of the page.