Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

For fun, I would like to build my own single-board computer which I can later program. I know there are already many development kits out there, sold by companies such as Altera and Xilinx, but I want to try to build such a board from scratch.

I'm aiming for something very simple. It should have system clock running on perhaps 1MHz, an 8-bit CPU (onchip multiply-and-divide unit is not required; I can simulate that in software), a small RAM (some KB should be enough) and an EEPROM where I can store my program. I would also like to connect some sensors, for example to read the temperature in the room.

I have read some digital design and CPU architecture courses, so I'm not worried about the components themselves. What I am worried about is the interconnects, especially if I need resistors and capacitors inbetween. I have some experience with analog circuitry, but it is limited. I have built my own board once for controlling four fans in my computer case using some opamps and resistors.

I don't mind writing my own compiler if need be, but it makes things much easier if such is already available. Also, getting the program on the EEPROM might be a bit difficult...

Do you know of any good books, websites or other resources to point me to in order to learn how to build my own single-board computer? Any help is much appreciated.

share|improve this question
Did you ever consider microcontrollers such as Atmel AVR series? It has pretty much all things you mentioned in a single chip and is supported by GCC. You'd need to add power, sensors and the rest of the stuff, but the computer processor, RAM and some flash memory would be there. – AndrejaKo Sep 29 '10 at 19:13
@AnderjaKo: Oooh, fancy! Those appear indeed to be what I'm looking for! And all in one package! Thanks a bunch! =D But why didn't you write this as an answer...? – gablin Sep 30 '10 at 6:57

I don't know how on-topic this is, but I'm going to answer anyway.

Your first step would be to take some time to browse through potential candidates for each component and to decide how low-level you want to go. Do you want to build CPU from discrete components or use preassembled CPU or get a microcontroller which would have all basic parts in one package. Next step would be to obtain and read datasheets for each component you plan to use. Usually you'll be able to find some example circuits and information about what kinds of coils or capacitors you'd need to use. Coils are mostly used to filter out AC signals while capacitors are often used to filter out DC signals.

Next step would b to try to obtain some sort of circuit simulation program. It's going to make everything much easier.

After that you'd need to "set-up shop". For getting data to the chip you'll need a programmer. Cheapest ones can be made from parallel or serial ports while more expensive ones will use USB and come with nice program which will load data to chip. Here you can't go wrong if you obtain programmer recommended by chip manufacturer. For example this one is recommended for AVR chips. You'll also need to decidd if you are going to make a printed circuit board or use proto-boards only. If you are going to go the PCB way, you'll need electronics soldering iron and related tools. You'll also need to decide if you are going to find someone to fabricate PCB or make one yourself. There are lots of ways to make PCB yourself, but some of them involve use of strong acids so they can be pretty dangerous.

You'll also need an IDE for the chip you decide to use. I can't help you much there is you don't know what you are going to use, but most popular chips today have an IDE which at least supports C.

I know that I've been imprecise with this answer, but I can't go into details unless I know what you are actually planing to do.

Also, consider going to with this question. It seems it would fit there better.

share|improve this answer

The motorola MC68HC05 seems to fit your requirements (but there's a lot more microcontrollers that would fit the such as those AnderejaKo mentions)

The documentation for it included schematics for a working board as well (but you need to draw and etch your own circuit board and figure out an application for the I/O pins on the chip)

The only software I wrote for it, I did using manual conversion from assembler to hexadecimal (the op-codes are very simple), there are free development tools for it.

share|improve this answer

In the student manual for 'Art of Electronics' they have a set of exercises to build a very simple micro computer. Between the book and the student manual, you should have enough to build a very simple computer.

share|improve this answer
Were you perhaps thinking of this? The link you gave isn't working for me. – AndrejaKo Sep 30 '10 at 7:11
the link is not working? Well just search for 'Art of Electronics' on amazon or any good book website and you should be able to find it. – Mark Irvine Sep 30 '10 at 12:19

This may be better served by re-directing it to as AndrejaKo noted already. In particular I would suggest two existing Q&A, "[w]hat's the difference between a microcontroller and a microprocessor?" and "[g]etting started with a microprocessor".

The first explains the difference between a microcontroller and a microprocessor, which in general terms, deals with the hardware complexity or level of integration (i.e. how many IC chips needed). Depending on your goals, and / or time & financial resources (hardware does tend to cost money), a small simple microcontroller based unit such as the ever popular Arduino or one of its many clones - which are available as kits or already assembled, might be best, as they cost about 25€ ($30 USD).

But if you prefer to build something more like a hobbyist personal computer circa late 1970's, early 1980's, then the suggestions in the second question (Getting started ...) may be more in keeping with what you had in mind. In this case, a microprocessor such as the Zilog Z80 may be a more suitable CPU to build a single board computer (SBC) upon, as it was I believe the most commonly used microprocessor for hobbyists of homebrew computers, with I suspect the MOS Technology's now famous 6502 a close second. There are even a number of older books available second-hand (English and western European languages) describing building a SBC using a microprocessor such as the Z80, Intel 8080, or Intel 8051 / 8052. I discussed a number of other particulars in my answer to the second question. This approach would normally expect you to have at least some minimal familiarity with electronic components (or a willing to learn / make mistakes), and purchasing & assembling of electronic parts, as I don't believe they are any complete SBC kits or ready-to-use SBC still available, other than as collectibles on eBay.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .