Slashdot Mirror


Microcomputers for Homebrew Projects?

tengwar asks: "Way back when I was at university, I did a course on microcomputers which went into enough detail to design, build and program a Z80-based system - more or less state of the art at the time. Now that my lecture notes are firmly embedded in the Carboniferous layer, I'd like to have a go at doing this with a more modern chip, and I wondered what's available. I'm not brilliant at electronics, and I liked the way the Z80 peripheral chips integrated easily with the CPU. Obviously I'm not looking to just slot together the latest PC motherboard with the latest Pentium, but I'd need to go for something where the board design won't get too complicated, which probably rules out processors with full 32-bit external interfaces on space grounds. I'm not really concerned about performance, but it would be nice to be able to port a JRE to it rather than working entirely in assembler. Any thoughts on suitable starting points?"

68 comments

  1. Atmel AVR by glassesmonkey · · Score: 4, Informative

    I'm not sure if anything short of Pentium/Athlon would be state of the art enough, but I'd recommend the Atmel AVR. Firstly, there are lots of demo/examples with it and existing software archives exist.
    This processor is used in some smart-sensor applications where you have distributed sensors.
    Here's a 1998 EDN mag review and some simm circuit boards which make project computers.

  2. Not that easy by keesh · · Score: 3, Informative

    One of the reasons you won't get modern CPUs to work on hand-made boards is the length of connections. With the z80, you can trim wires by hand and it'll still work quite happily; with faster CPUs, though, you need to be far more precise with the length of the wires / tracks connecting the CPU to memory and the like. At speeds of over a few MHz, even a mm difference is more than enough to screw things up...

    1. Re:Not that easy by John+Hasler · · Score: 4, Interesting

      Make that a few hundred MHz and a few cm.

      --
      Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
    2. Re:Not that easy by waldo2020 · · Score: 1

      that's just plain total bullshit.
      you can even wirewrap to 40 Mhz...

  3. microcontrollers by wotevah · · Score: 4, Informative
    If you forget about java and a VGA display, you can do a lot of fun things in C with a single microcontroller chip. Microchip makes an entire range of fairly cheap, very low-power microcontrollers, flash- or one-time programmable. There are also other companies that make enhanced versions of the venerable 80C51 such as the Philips 80C552 with integrated A/D converters and PWM outputs although depending on your soldering/wrapping abilities you might not want to use them as they have quite a few pins!

    Microcontrollers are extremely small, low-powered devices containing a CPU, some code/data memory peripheral interfaces. You might have seen them at work in your preferred game station mod chip...

    I think Motorola, AMD and Intel also have a line of powerful 68xxx- and x86-, respectively, -based microcontrollers that might be closer to the capabilities of a PC processor.

    There are also some chips that you can program in Basic (ugh) via a small interpreter in their boot code. It really depends on what you are planning to do.

    1. Re:microcontrollers by Josh+Booth · · Score: 2, Interesting

      Those BASIC Stamps you are talking about are really Microchip PIC's (Periferal Interface Controllers) with an interperator program. You can buy your own, though, and assembly code them or download the C compiler for it and use a subset of C.

    2. Re:microcontrollers by foureyes · · Score: 2, Interesting

      If you don't feel like spending too much time mucking around with assembly or C, or dropping 50 dollars on a programmer, or putting together all the supporting circuitry around the chip (the clock, adc, etc.), then you should probably try the BX-24. It's programmed in a Basic environment (which I guess could be either good or bad depending on who's using it), so it's dead easy to get something up and running really quickly.

    3. Re:microcontrollers by linuxator · · Score: 1

      Learning C is matter of 27 hours. Just get yourself a K&R book. Been there, done that.

      --
      * Origin: XBase BBS (2:490/4100) Well the good old days may not return and rocks might melt and sea may burn.
    4. Re:microcontrollers by Judg3 · · Score: 2, Informative

      Another good thing about Microchip.com: http://sample.microchip.com/.
      Pick up to 5 items and have em FedEx'ed to your home. It's a great way to check out a new chip you where wondering about, and not spend the money on it. Granted, it's only 5-25$ per piece, but that's 5-25$ you might waste if you get a new chip to play with and end up toasting it.

      --
      Looking for hardware (Currently need: Large Etch-a-Sketch) Have one? See my journal!
    5. Re:microcontrollers by Anonymous Coward · · Score: 0

      Right, but any site that still decides IE or Netscape are the only browsers out there doesn't deserve my business. If I can't see it in Opera, then I ain't seeing it.

  4. Well by GigsVT · · Score: 3, Informative

    PIC, or AVR generally is where you should start. There's really no way around working in either Assembly or C if you want to do anything serious with it.

    To go to a more powerful CPU gets you into all the stuff you don't want to get into, like critical and complex board layouts.

    There's BASIC compilers, but you aren't going to get very far before you run into some serious limitations if you want to do anything complex.

    Good luck on the JRE thing, something like that is way too slow and bloated to run on a hobbiest CPU. I think sun made a chip that executed bytecode, but I don't think they make them anymore.

    --
    I've had enough abrasive sigs. Kittens are cute and fuzzy.
    1. Re:Well by FFFish · · Score: 2, Insightful

      I suggest working in Forth. It's not overly difficult to write the innermost Forth kernel, no matter which processor you choose; many are only a few hundred bytes long. From there, you begin using Forth to write more Forth, extending the language as needed for your particular application.

      One bonus to this is that not only have your designed and built your own computer from CPU up, but also your own OS/Application from NOP up.

      --

      --
      Don't like it? Respond with words, not karma.
    2. Re:Well by tengwar · · Score: 1
      I suggest working in Forth.

      Certainly a good idea - it's just I have this allergic reaction to the aesthetics of Forth which I suppose I'll have to overcome.

    3. Re:Well by larien · · Score: 1

      There are micro JREs running on small hardware (most modern mobile phones use it). As others seems to be leaning towards ARM, I'm pretty sure one of them could run Java at some kind of acceptable speed.

    4. Re:Well by pyrrhonist · · Score: 1
      Good luck on the JRE thing, something like that is way too slow and bloated to run on a hobbiest CPU.

      That's not true. Check out The TINI.
      You can also program it in 8051 assembly, AND with the 1-wire interface you can hook a buttload of different sensors and things to it.

      --
      Show me on the doll where his noodly appendage touched you.
  5. ARMBoards by brejc8 · · Score: 5, Interesting

    We have made a few ARM Boards to teach undergraduate students. They work with ARM Angel or with our own debugger KMD. You can write code in asm or C or any even gcc front end (inc java).
    The best feature for me is the huge FPGA's to play around with. Its quite easy to pick up any electronic equipment and plug it into it. Lots of fun and great experience gaining stuff.
    The board total was around 100 GBP (inc board manufacture and mounting) and I think if you ask nicely the designs will be available.

    Alternatively you could use something like a 6809 or an 8051 but then writing code for them is a pain. The best idea if you use someting old is to emulate a better processor. You can then run your favorite ARM/MIPS/x86 code on an emulation and forget the real system.

  6. Try Arm on for size by madmaxx · · Score: 4, Interesting

    You might try an Arm processor, many of which have great built-in features (like NIC, daq, memory management). You can get demo boards, and run linux + related gnu tools on them. ARM-based systems make great embedded/distributed systems (aka 'the future'), and are a useful to learn for the old-resume.

    --
    mx
  7. A few suggestions by EdMack · · Score: 2, Interesting

    Firstly, these are good, and cheap: http://www.oopic.com/
    They can be programmed with java, c and much more, yet are basic. They are made to work well with servos and such, and are very versitile (read up on vitural circuit)

    For a more expensive option, the famous mini-itx boards are great, and robot sized heh http://www.mini-itx.com/
    Starting at about the same price as a microcontroller (well, some)!! Java is here too :)

    I suppose I'm more looking into cpus for robots, so maybe this is not ideal.

    --
    puts ("Python r0cks\n");
  8. This is what I've done.... by psyconaut · · Score: 3, Informative

    I've been using Jave modules for a while...both from DalSemi/MAXIM (the "TINI", http://www.ibutton.com) and Imsys (the "SNAP", http://www.imsys.se).

    They provide a JRE environment (JDK1.1.3 in the case of TINI, J2ME CLDC 1.0 in the case of SNAP) and allow me not to worry about processor and memory design etc.

    Right now, my SNAP module lives in a custom extuded aluminum enclosure I designed, and has a MMC interfaced for it (an extra 16Mbytes of removable storage), and a bunch of other things like temperature/humidity sensors, LEDs, an LCD, and dry contact sensors.

    One reason I like both these modules is that they support I2C, SPI and 1-wire for expansion....meaning that you don't have to necessarily hang stuff off the CPU's data bus.

    Good luck.

    -psy

    1. Re:This is what I've done.... by tengwar · · Score: 2, Informative

      Yes, for actually getting stuff done I like the TINI - nice to work with and very cheap. I've not tried the SNAP but I've heard good things about it. However they're basically ready-built whereas in this case I'm interested in building from the CPU up - I suppose mainly to see if it can still be done.

    2. Re:This is what I've done.... by psyconaut · · Score: 1

      I've done PIC stuff aside from the pre-built modules....

      Have you considered an ARM core? They're quite easy to work with....from what I know/am told.

      -psy

    3. Re:This is what I've done.... by Zachary+Kessin · · Score: 1

      I took a class at brandeis in the physics dept and we did PIC based stuff. We used an 8 bit Pic with i think 13 IO lines. It was a very good class and I learned a hell of a lot. We used PIC basic and assembler. (It was a physics class not computer science).

      There was quite a bit of equipment we ended up needing, including the programer (to put the code on the chips) a breadboard (actually several) and a very good osilascope. If you have access to this kind of stuff it could be worth it.

      One problem DIP profile chips are getting harder to come by. Surface mount chips are great for factory built stuff, but if you are playing with stuff at home (or in a school lab) not so good.

      --
      Erlang Developer and podcaster
    4. Re:This is what I've done.... by psyconaut · · Score: 1

      I do surface mount stuff at home all the time...it's not nearly as hard as most people make it out to be! It's quite easy to solder a TSOC, SOIC8 or SOIC16 component onto a breadboard adapter (I make my own).

      And just about everything Microchip (the PIC folks) make is available in DIP ;-)

      -psy

  9. Where to start by jcwren · · Score: 4, Informative

    If you *really* want a JRE (which is generally not synonymous with performance, in the microcontroller world), check out the TINI from Dallas Semiconductor, here.

    If you want to get into heavier duty gear (and available only in surface mount), you can look at things like the Patriot from PTSC, here. There are also several others that I've seen, but can't recall the name of. A little Googling should find those.

    1. Re:Where to start by iangoldby · · Score: 1

      So providing a link to Google, but not actually including any promising search keywords in the link is now informative?

    2. Re:Where to start by pyrrhonist · · Score: 1
      So providing a link to Google, but not actually including any promising search keywords in the link is now informative?

      No, but the links to Dallas Semiconductor and PTSC probably were.

      --
      Show me on the doll where his noodly appendage touched you.
  10. Atmel by LadyLucky · · Score: 1
    Atmel make 8 bit micros that are pretty easy to interface with. You would probably be out of luck porting a JRE, but there is a C compiler for it.

    JStamp make native java hardware. Never used them though.

    --
    dominionrd.blogspot.com - Restaurants on
  11. Motorola Dragonball? by innosent · · Score: 3, Informative

    If you want a processor, and not just a microcontroller, but still want it fairly simple, you might want to check Motorola's Dragonball chips. It sounds like you want something with a low pin count, and simple ISA, so that'd be my first suggestion, followed very closely by ARM.

    If you want a microcontroller, then maybe the 68HCxx series, or a RISC-ish PIC. The 68HCxx series is probably the most popular there, and you can easily find code and design samples for them.

    --
    --That's the point of being root, you can do anything you want, even if it's stupid.
  12. modern or not by Stinson · · Score: 1

    i think the z80 still can be used. modern doesn't mean too much on that scale. for more complex things Zilog makes a pretty big line of various processors for different uses.

  13. PIC by Anonymous Coward · · Score: 0

    Look at PIC processors from MicroChip. They nice, not extremly powerful, and you can hardly get a JRE for it. But you should be able to put together a little board in your garage for about $20.. And there are som decent C compilers for those processors. Look into them. And there is the ARM processors ofcourse...

  14. HC12 by epine · · Score: 3, Informative


    I had to get back into microcontrollers, after a long absence (since the days when the 6809 was state of the art).

    I decided to go with the Motorola HC12. Unlike the HC11, it runs compiled C code with reasonable efficiency (gcc supported), it's highly integrated, and you have a simple execution model (not very many registers, etc.) when debugging by hand. It's reasonably capable, and almost trivial to design your own project board (clock frequencies within reason, few external components required, every kind of I/O pin conceivable).

    The more powerful versions have huge amounts of internal FLASH (256K), but not quite as much internal memory as I would like (8K is typical of recent versions).

    There are cheap modules available from Technological Arts in Toronto. They don't seem to be very active this year with new designs, but they continue to supply their product line to local colleges last I checked.

    Anything more complex than an HC12 I think I would want some kind of kernel OS. The next step up the food chain, in our evaluation, was an Atmel chip.

  15. mmm. beer by FrenZon · · Score: 2, Funny

    Nuts, I thought the title was Home Computers for Microbrew Projects. So I am understandably disappointed with the non-beer focus of these comments.

    1. Re:mmm. beer by Freaek · · Score: 1

      glad I'm not the only one who was dissapointed about it not being beer related!

    2. Re:mmm. beer by tengwar · · Score: 1

      Sorry chaps, this is Ask Slashdot. You need the next section over - Flask Slashdot.

  16. So dust off your notes by fm6 · · Score: 1

    You know, the Z80 is still in production, and your experience helps explain why. It's a useful, accessible CPU. I mean, why are you doing this? Fun, self-edification? If so, the Z80 suits your purpose as well as it every did.

  17. homebrewcpu by jpmkm · · Score: 1

    If you want to go really hardcore, check out homebrewcpu.com. That guy basically made a processor out of TTL components. I was actually searching google about this very same thing the other day and came across that site(although not much else other than old homebrew computer clubs).

    1. Re:homebrewcpu by tengwar · · Score: 1

      This looks like fun, but a bit beyond me. I've wondered about building an OISC - should be the simplest CPU to build, but a real bear to program (do bears program in the woods?). But using 74 series components? Doesn't he know Real Men knaw individual transistors out of solid silicon?

  18. If you like x86 and Borland C/C++ by HotNeedleOfInquiry · · Score: 1
    You might want to check out JK microsystems.

    For $69 you can get a 33mhz 80186 board with 512k of flash and ram, a flash file system, and a full Borland development ide. You get 44 digital I/O lines plus the raw processor bus and a bunch of integrated peripherals.

    --
    "Eve of Destruction", it's not just for old hippies anymore...
  19. Or if you just want the IDE... by fm6 · · Score: 1

    You can download it for free here.

    1. Re:Or if you just want the IDE... by HotNeedleOfInquiry · · Score: 1

      Not the same. The JK micro version is 4.51, runs under win and compiles to a realmode target.

      --
      "Eve of Destruction", it's not just for old hippies anymore...
  20. MCU's by linuxator · · Score: 1

    MSP430 series from Texas Instruments are quite good (and with ultra-low power consumption). They also have GNU toolchain available.

    --
    * Origin: XBase BBS (2:490/4100) Well the good old days may not return and rocks might melt and sea may burn.
  21. PicoJava by QaDeS · · Score: 1

    Why not directly jump at designing a Java processor? SUN's PicoJava architecure is AFAIK publicly available, at least for educational use.

    And as you are at it, you could as well design this as a PCI board to finally speed up Java on the desktop :o)

  22. Still want Z80? by HeyLaughingBoy · · Score: 1

    Personally, I prefer Atmel AVR devices these days. atmel.com and www.avrfreaks.com will give you all the info you need. Z-80 is still around in different guises. Zilog has a few single board computers that can run C and other languages and they're pretty inexpensive for what you get. Can even get them with webserver code! If you want to build another Z80 machine, get back to me. I have tubes of Z80s, Z80-CTC, Z80-PIO (I think) 32k EPROMS and 32k SRAMS sitting in my basement that I will probably never use. Considered packaging them up for eBay sale, but got too lazy. Give me $20 for the lot (50-100 chips) and you can build Z80 based computers to your hearts content :-)

    1. Re:Still want Z80? by jcwren · · Score: 1

      Bah. Your email address isn't public. Mail me at z80@tinymicros.com and I'll take'em off your hands.

  23. Don't fool yourself by Anonymous Coward · · Score: 0

    This is Engineering work, and Slashdot barely qualifies for basic programming advice.

    1. Re:Don't fool yourself by tengwar · · Score: 1
      This is Engineering work, and Slashdot barely qualifies for basic programming advice.

      Ah, rubbish. I asked for pointers on where to start, not detailed circuit layouts, and I've got a load of useful responses (thanks guys!). That's exactly what /. is good at. Now I'm going to have a look at what FPGAs can be used for - I get the impression they could be useful for building the device, but I'm not sure how yet as they came in after my time.

    2. Re:Don't fool yourself by Eg0r · · Score: 1
      Just another one you might want to consider. Zilog makes a few microcontrollers based on the Z80. Two families come to mind the z8encore and ez80acclaim.

      The Z8F640x z8encore devel kit only costs $50 (check the future active page) and comes with an IDE which lets you play with both C and ASM. The CPU is of the most basic variety so don't expect running linux on the board but you will feel at home having done Z80 coursework.

      There are 2 kits for the ez80acclaim (eZ80F91 and eZ80F92) which both come with ethernet sockets. They cost 199 and 399 each. Again, these are microcontroller boards so they might not be suited for your needs.

      All things considered, a $50 investment is not bad for a devel board + software, especially if you want to experiment with embedded applications. You might also want to add one of these for added fun (talk to your microcontroller board over USB 1.1).

      On the other hand, if you want to use linux/uclinux on a devel board, embedded cpus like arm, xscale (intel) and coldfire (motorola) come to mind, but an off the shelf devel board will cost you a lot more. In any case, check here.

      --
      "Hasta la victoria siempre!" El Comandante
  24. Edumucation by poptones · · Score: 2, Interesting
    Is this for real education or just a toy? If the goal is education then thinking in terms of wire and solder is antiquated - like teaching vacuum tube design to freshmen just because it's easier than understanding holes and heatsinks.

    Better I would think to start with an FPGA. I did a lab like this when I was in school - not that it was being taught in the course, just that I was bored with the labs so decided to make my lab reports more interesting. Take an adder (in my case it was an actual 74181) and show how it's incorporated into a "real" CPU. Then counters, memory, etc. You can introduce it a module at a time, build a lab project around it (like wiring the FPGA as a basic adder and flipping switches on the workbench) then use it as part of the next project to make a more complex ALU. Keep going piece by piece and you've not only made everyone relatively comfy with a soldering iron and proto boards, you've also prepared them for senior classes and CAD tools.

    There's a bazillion premade CPUs on the market now that have several on chip peripherals. But every one of them in low quantity is relatively expensive at $20 or more. Why not just spend that on an FPGA (or even twice that) and teach some skills that will help qualify students for something better than "skilled labor" assembly line work?

  25. Rabbit Semi Z80 by Russ+Nelson · · Score: 1

    Rabbit Semiconductor makes a Z80 compatible which has all sorts of interesting hardware on-board, like a PWM generator and two quadrature encoders.
    -russ

    --
    Don't piss off The Angry Economist
  26. Using a JRE is silly. by Gordonjcp · · Score: 1

    Remember that for embedded stuff, you want low power consumption. And for that, you'll have a relatively slow (by modern desktop PC standards) CPU. A JRE will use a stupid amount of CPU horsepower just to run, so your actual embedded system will run like a bag of shit. Can you imagine if the ABS controller in your car used Java?

    Learn C. It's pretty similar to Java, but is far more suitable for writing embedded controller software. Remember that you are going to be controlling things, not drawing widgets on a screen, so an OO language is not really necessary (or even desirable). Instead, you will be reading and writing IO ports, which will involve a certain amount of bare metal programming. Java won't really let you do this. You could use FORTH, which was invented for writing controller software for steerable telescopes.

    Of course, if you must use Java, you could always compile to machine code instead of byte code. It's still not particularly great for embedded stuff, though.

    1. Re:Using a JRE is silly. by tengwar · · Score: 1
      Remember that for embedded stuff, you want low power consumption.

      I didn't mention imbedded stuff. I'm only interested in building a computer, not using it for something practical - there's plenty of off-the shelf stuff for that.

      Learn C. It's pretty similar to Java, but is far more suitable for writing embedded controller software. Remember that you are going to be controlling things, not drawing widgets on a screen, so an OO language is not really necessary (or even desirable). Instead, you will be reading and writing IO ports, which will involve a certain amount of bare metal programming. Java won't really let you do this. You could use FORTH, which was invented for writing controller software for steerable telescopes.

      Umm, how shall I put this? Are you old enough to remember BCPL? That was when I started using C-family languages, though I did more work with K&R. I'd imagine almost everyone here is familiar with at least ANSI C. I just happen to prefer Java for playing around. Either language will need some tailoring of the run-times to work on a new machine - admittedly C would probably be easier, but it would be interesting to look at what's involved in porting a JRE.

      BTW, with suitable attention to issues like garbage collection, yes you could use Java to run a soft real-time system such as ABS. Not what I'd choose for such a simple problem, but Java on a modern processor will run a lot faster than assembler on some of the old crates I used to do real time work on, and ABS is a really undemanding problem. Memory consumption is more of an issue.

    2. Re:Using a JRE is silly. by pyrrhonist · · Score: 1
      A JRE will use a stupid amount of CPU horsepower just to run, so your actual embedded system will run like a bag of shit.

      It's unbelievable that someone who knows something of embedded systems would post this kind of vitriol without posting benchmarks or, at the very least, performing a google search first. It's also disturbing that the myth about Java's slowness is still stuck in people's heads. Java's bytecode certainly does not execute as fast as native code, but making a blanket statement about the poor performance of every JRE and Java program is absurd. See this 2 year old article: Embedded Java

      Embedded Java is a very big thing; please see:

      Javas Consumer and Embedded Technologies
      Key Embedded Java Standards
      EMBEDDED SYSTEMS GO REAL TIME WITH JAVA TECHNOLOGY
      Using Java Technology to Standardize Real-Time Development

      Learn C. It's pretty similar to Java...

      Well, sort of. Java does share some of its syntax with C, so it will look familiar to a C programmer, but this is an oversimplification. Java has no preprocessor, global variables, pointers, goto statement, struct type, union type, enumerated types, bitfields, typedef, function pointers, or variable-length argument lists. Java has well-defined primitive type sizes, where in C it is dependent on the platform. Java has objects and method overloading, where C does not. Java has garbage collection, where in C you have to roll your own. In Java you can declare variables anywhere, but in C you cannot. Finally, Java has no need of forward references. Your toolchain is also completely different - not just your compiler, everything. In addition, the programming methodologies you use with Java are entirely different from those you use in C. If you want to move from C to Java and still program effectively, you have to learn a completely different way of thinking.

      Remember that you are going to be controlling things, not drawing widgets on a screen, so an OO language is not really necessary (or even desirable).

      I'm curious, why do you say that OO isn't desirable? I can see that it may not be desirable on a system that has existing APIs written in C, but for new systems, why is this a poor choice? From personal experience, I have encountered a system whose flagrant abuse of structs and function pointers was enough to make a sane man weep. OOP would have really helped to make this more understandable and compact. I've also heard some arguments that object-orientated (Java, C++) and procedural languages (C) are both poor choices for embedded systems, and the best paradigm to use is a logic or declarative programming language.

      Instead, you will be reading and writing IO ports, which will involve a certain amount of bare metal programming. Java won't really let you do this.

      Again, sort of. Usually, any system that supports Java is going to provide Java layer drivers for its hardware, just like any system that supports C is going to have C APIs. There are some good processors specifically designed to run Java programs in an embedded environment that provide Java access to the HW layer. In addition, any J2ME system has standardized ways of accessing the hardware that most J2ME users will use. Please see the following:

      Dallas Semiconductor TINI
      Imsys SNAP
      J2ME

      If there is still some piece of hardware that you don't have a Java API for, you c

      --
      Show me on the doll where his noodly appendage touched you.
    3. Re:Using a JRE is silly. by Gordonjcp · · Score: 1
      ABS is a really undemanding problem.


      Apart from, if it fails then it can disable your brakes completely, yes. I don't want to take a chance on the Mickey-Mouse language of the "Shock the monkey and win" brigade anywhere near life-critical systems.

    4. Re:Using a JRE is silly. by tengwar · · Score: 1

      I bow to your superior knowledge of real-time programming.

  27. Try This by L-s-L69 · · Score: 1

    www.arcom.com they do a range and some of them can run a jre and linux.

  28. CircuitCellar by FrankSchwab · · Score: 1

    What ya wanna do is subscribe to Circuit Cellar the magazine that is today what BYTE magazine was back in the z80 days. Full of articles on using modern, small processors to do "stuff". They also run some great Design Contests supported by various manufacturers that get you a development board and software (and generally extra chips!) for free.
    These days, at the low end (less than 100 MHz), there is seldom a need to wire a processor up to much of any peripherals. For example, the motorola Coldfire processors are basically 200+ Mhz 68000 (e.g. 66Mhz with single-cycle instruction execution compared to the 68000's 4-10 cycle instructions) with just about any peripherals you might ever want onboard. Not really sufficient for a JRE, but not bad for just about anything else. Also, they're roughly $10 each in quantity. Many other manufacturers are making similar types of chips these days:
    Hitachi processors
    Rabbit Semiconductors
    Zilog

    One of the problems you'll have to deal with if you want to build your own systems is that Wire Wrap is simply unusable in this day and age. Not only is it impossible to find a socket for somthing like the 256-ball BGA that the coldfire comes in, or the more standard 144-pin QFP packages, the speeds make it unlikely you'll be able to use that technology successfully. I've built fine-pitch boards in my garage using photosensitive PCBs, but the best solution is something like PCBExpress or ExpressPCB and get 2 or 3 3"x3" double-sided boards for $60-$80. Even so, building high-speed systems is not for the amateur; laying out a system using PC-133 SDRAM is not something you want to do without a bit of up-to-date layout knowledge. Good luck, hope this gives you some pointers to get started with! /frank

    --
    And the worms ate into his brain.
  29. actually pretty easy by dutky · · Score: 3, Informative
    Check out my journal for some discussion of exactly how to do such a thing. The first bit of advice is that you should consider a microcontroller as the heart of the system. There are lots of good candidates out there: PPC, ARM, and MIPS devices are common. You might be able to find some x86 based devices as well.

    Many of the current MCUs are ball grid array (BGA) devices, which make them pretty hard to work with if you're not a professional, but a few can be had in PLCC or QFP packages, which means you can get an adapter board or socket.

    You can also buy preassembled demo/development boards (this is the route I'm taking) and wire-up anything the board doesn't include by hand. Most of the MCUs on the market will have 32-bit memory busses (though they may not support more that 25 or 26 address lines), so you can attach just about anything you want to them.

    This is exactly the kind of thing that Steve Ciarcia (of Ciarcia's Circuit Cellar) used to do: building personal computers from microcontrollers. Most of his designs used Z80 based devices, which was fine back in the mid- to late-eighties. Now, however, you can do a fair bit better.

    As for speed, I don't know exactly what you're looking for, but the ARM devices can be had in speeds from 50MHz to 400MHz, and the same is true of the PPC and MIPS devices. That may not seem like much, compared to a 2GHz Pentium, but it's really quite nice.

    Some good resources: Digi-Key is a reasonable source for all sorts of parts, Atmel makes some nice MCUs, programmable logic, and Flash RAM, Cirrus Logic makes some ARM MCUs and networking chips (amoung other things), Sharp, Samsung, Motorola, and AMD all make nice MCUs, Cogent Computers builds some nice development boards, and EarthLCD has good prices on LCDs and has an ARM based board in the works.

    1. Re:actually pretty easy by LWATCDR · · Score: 1

      There are lots of StrongArm style chips that would make a good project. DragonBall and Coldfire chips are also available. I would dump JVM as go with c or c++ if you do not want asm. And yes many of them you can run Linux on.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
  30. Free Software... by FrankSchwab · · Score: 1

    Forgot one thing... You simply don't have to program any of these chips in assembler any more, free software will get you where you need to be. Most, if not all, are supported by GCC, and most (if not all) have a port of the remote side of GDB available. Write in C++, debug in GDB over a serial link, and you're doing pretty good. You can also get free operating system software for them, ranging from simple multi-tasking kernels (uCos, eCos, etc) to full-blown desktop style OSs with filesystems (e.g.e uCLinux). Good Luck /frank

    --
    And the worms ate into his brain.
  31. SuperH is interesting. by Anonymous Coward · · Score: 0

    In the 'bigger chip' category... Coldfires are fun. (Strong)ARMs are popular. Embedded PowerPC is more prevalent than you'd think. MIPS makes a showing in various guises. 486s and Geodes are great fun for some.

    And SuperH seems to go overlooked, though it did crop up in the Dreamcast. Here's one 'DIY' project that used it:

    http://www.azpower.com/mylinux/
    And the guy explained why he liked it:
    http://www.azpower.com/mylinux/why_superh.html
    He also shows how FPGAs can be used. What ever happened to that project!? I wanted one!

    It does seem like GCC for SH has been a bit.. 'variable' or 'neglected' of late. But now that the 3.x branch has settled, I gather it's improving/seeing maintainership again.

    The Kaii - http://kaii.info/ was supposed to have been another SuperH design, but I haven't heard a peep about it, either. (They wanted to design SH boards in appropriate form-factors, port the OpenPDA platform of the Zaurus and friends to it, and license their designs to manufacturers cheap. I assume they were stymied by some of GCC's unsettledness.)

    Meanwhile, if you want to start by 'reverse-engineering' an existing design, the "CommodoreOne" will be a well-documented design when it's finally released, also using FPGAs to good effect. Sadly, the project pages are perpetually down at the moment (unless someone knows where they've moved), but it's a simple uATX board, and will be produced/sold by Individual Computer - http://jschoenfeld.de/indexe.htm" - when they finally get things straightened out. Google may help if you care. There's another (unrelated) project out there for a similar but simpler design meant to resemble early arcade or home game systems' boards, but sadly, I can't remember the name of it.

  32. Little Boards by Cpl+Laque · · Score: 1

    A company called Ampro has these little 486 boards complete with Ethernet, PS/2, IDE and VGA connections and they are affordable.

  33. AVRs rock! by Andy+Dodd · · Score: 1

    They're powerful (considering their cost, $3 to $12 each), and very easy to program.

    http://www.avrfreaks.net/ is an excellent AVR resource.

    In addition, you can program AVRs in C rather than assembler. There is a GCC version that targets the AVR platform, although my preference has been for Codevision AVR compiler/IDE/library set- It's $150 for a full version, but worth every penny (Mainly for the library set it comes with. No need to write your own I2C, One-Wire, or LCD interface routines, as CV-AVR has libraries for all of those).

    --
    retrorocket.o not found, launch anyway?
  34. Texas Instruments DSP by merlin_jim · · Score: 1

    Depending on what you want to do, a DSP may be the answer.

    TI makes a few good ones. Advantages over a MicroController? How about a decent Math package (fixed point or floating point), built in programmers, and a large array of I/O options? The DSPs I've been playing with have 3 General I/O registers, any pin of the 24 available to the GIO can be configured to be input or output.

    Add on integrated ADCs and DACs, and a decent clock speed, and you've got a nice system.

    Did I mention that you can find older development kits on ebay for $100?

    Oh and if you get a nice commercial application out of it, TI will custom manufacture them for you in sufficient quantities, with your program masked on the silicon itself. Prices for these are pretty cheap; starting at about $12/unit last time I looked into it (about 2 years ago)

    --
    I am disrespectful to dirt! Can you see that I am serious?!
  35. PICs, Parallax Javelin and ucsimm by monopole · · Score: 1

    In my experience embedding processors in very tiny MEMS sensor packages (smaller than a postage stamp) the Microchip Inc. PIC processors are an excellent embedded processor with many low cost programming tools. The PIC16f876 is particularly neat with a flash reprogrammable ROM and in circuit programability. But the 8 pin designs pack quite a wallop as well.

    The Javelin is java version of the basic stamp for the more hardware adverse, For low performance work the Basic stamp is excellent.

    Finally the uClinux folks have a series of SIMM (Memory) form factor single board computers with the same power of a small Palm Pilot which run uClinux.

  36. Parallax: Basic stamps and Javelin by Torrenc · · Score: 1
    Parallax has "stamps" that run either BASIC or JAVA programs. They've got a variety of different chips with different capabilities. Better yet, there's plenty of documentation, plans, etc., out there for them.

    Sure they don't have the power of some of the beefier solutions mentioned, but they're much easier to get into.