Single Board Computer

Thread Starter

Sparky49

Joined Jul 16, 2011
833
Hi everyone.

I've got a big interest in computers, and would like to try to build my own.

I've done alot of searching for a single board computer project which is really well documented (clear schematics, boot files, possible pcb file, etc) and which isn't too complicated.

However, I can't really find any. :(

Can any of you guys suggest a couple of projects?

Many thanks,

Sparky
 

thatoneguy

Joined Feb 19, 2009
6,359
Probably not exactly what you are looking for, but a Raspberry Pi may fit what you are looking for.

It is very expandable.

Building your own board would be extremely expensive, it would need to be several layers and high speed digital design domain will be in effect.

You could build an 8 bit computer from logic ICs, that has been documented. Lots of wire wrap, as expanding/modifying an etched PC Board is a bit of a pain. ($>1,000, hundreds of hours)

Perhaps you could order a medium size FPGA development board and build a "soft core" 32 bit CPU, RAM, and I/O in it? It isn't soldering together ICs and designing boards, but you can create about any architecture (ARM Cortex is common) with an FPGA. (~$500-$3000 for complete dev kit and software, hundred hours if new CPU deisgned and tested, a few hours for a soft-core module found on net and loaded) Clock up to 1.5Ghz

A lower end FPGA would allow you to create a 8 or 16 bit processor, perpipherals, and some have sockets for DDR RAM expansion for building prototypes of ASICs.($250, same time spent as 32 bit, fewer integrated peripheral "blocks") Clock around 300Mhz

--ETA: Altera High capability
Microsemi ProASIC3 mid range
Xilinx Spartan 6 mid-range
 
Last edited:

spinnaker

Joined Oct 29, 2009
7,830
When my interest in electronics was renewed a couple of years ago, I had plans on building a 6502 single board computer as I have a number of 6502s and supporting chips lying around.

I got so interested in Pics I gave up the single board idea. There are just too many projects to build with these mcus.
 

WBahn

Joined Mar 31, 2012
30,076
I bought a book many years ago that was intended as a more-or-less self-contained college lab course and you built an 8088-based computer including support for most of the peripherals that they had such as monitor, keyboard, mouse, joystick, floppy drive, etc. The thing could be built either wire wrap or on homespun (or proto fabbed) 2-layer boards. I would actually still like to dust that thing off and build it, though I don't know if I can find the chips that it calls for. But seeing if I can do it (or something based on it) as an FPGA-focussed project would be fun.

About the same time that I bought the book one of the local electronics surplus houses was selling 8088 micros for 15 cents. I wish I had bought a couple dollars' worth.
 

Austin Clark

Joined Dec 28, 2011
412
Check out this book: http://www.nand2tetris.org/course.php

I used it as a reference/learning tool and built a CPU in Logisim
http://ozark.hendrix.edu/~burch/logisim/

I'm planning on using 4000 series ICs to implement it in Hardware. It seems rather doable. I'm still working on my final designs. The book was/is very straightforward, and guides you through EVERYTHING you need to make a full computer, from NAND to Tetris, from gates to assembler, to high-level language, to OS and on... It's amazing.

If you decide to go this route, let me know, we can exchange work/ideas :)
 

davebee

Joined Oct 22, 2008
540
A lot of people have done this with the Z80 microprocessor. It is powerful enough to operate a working system, but is simple enough for a relative beginner to work with.

Just Google homebuilt Z80 and you'll find a lot of information.
 

WBahn

Joined Mar 31, 2012
30,076
Check out this book: http://www.nand2tetris.org/course.php

I used it as a reference/learning tool and built a CPU in Logisim
http://ozark.hendrix.edu/~burch/logisim/

I'm planning on using 4000 series ICs to implement it in Hardware. It seems rather doable. I'm still working on my final designs. The book was/is very straightforward, and guides you through EVERYTHING you need to make a full computer, from NAND to Tetris, from gates to assembler, to high-level language, to OS and on... It's amazing.

If you decide to go this route, let me know, we can exchange work/ideas :)
Think carefully before you implement it in hardware at the gate level. Count how many packages you are going to need. For instance, a 2:1 Mux would use all 4 gates in a quad NAND gate. So if you also used 7474 dual DFF, then you would need a total of 24 packages just to make a single 16-bit register. Even if you are commited enough to do all that wiring (and, if you are, you will be ready to be committed long before you are done with the whole thing!), it will get quite expensive very quickly.

As for NAND2Tetris, I am working my way through that right now. So far I have invested about four hours in it and am on Project 4. I'm teaching a class next semester that is centered around this project, though it is fleshed out quite a bit with other stuff. I very much like the idea of this type of course. I don't know how sold I am on their architecture as they do some things in pretty odd ways that I think obscure some very useful and valuable lessons about logic and efficient ways of dong things. But the way that they do things also highlights some other lessons pretty nicely. Definitely haven't seen anything that's a show stopper for me yet.
 

Brownout

Joined Jan 10, 2012
2,390
Think carefully before you implement it in hardware at the gate level....it will get quite expensive very quickly.
I agree, and you probably won't have anything very servicable in the end. If I may offer an alternative, you can use a programmable device, xilinx, altera, actel, etc. and 'build' your computer in the programmable fabric. More than a few uP's got started that way. You can get an inexpensive kit and use free downloaded tools from the device vendors. Use high level HDL or low level structural coding at your pleasure. You can even use schematic entry tools for your design. You can make a pretty sophisticated computer system that runs fast 100-200 Mhz, and learn everything you want about computers in the process. If you want, you can use a really high level system builder, such as SOPC builder (Altera) or Studio Platform (Xilinx) to very quickly build a system with all the usual periphreals, usb, ethernet, etc, and use the integrated software tools to program it. The sky's the limit. You can build as simple gate-level or full up system as you deisre.
 

Austin Clark

Joined Dec 28, 2011
412
Think carefully before you implement it in hardware at the gate level. Count how many packages you are going to need. For instance, a 2:1 Mux would use all 4 gates in a quad NAND gate. So if you also used 7474 dual DFF, then you would need a total of 24 packages just to make a single 16-bit register. Even if you are commited enough to do all that wiring (and, if you are, you will be ready to be committed long before you are done with the whole thing!), it will get quite expensive very quickly.

As for NAND2Tetris, I am working my way through that right now. So far I have invested about four hours in it and am on Project 4. I'm teaching a class next semester that is centered around this project, though it is fleshed out quite a bit with other stuff. I very much like the idea of this type of course. I don't know how sold I am on their architecture as they do some things in pretty odd ways that I think obscure some very useful and valuable lessons about logic and efficient ways of dong things. But the way that they do things also highlights some other lessons pretty nicely. Definitely haven't seen anything that's a show stopper for me yet.
I completely agree! I wasn't planning on implementing everything on the gate level. 4000 series ICs aren't that limited :)
I'll have to look more closely at what I'll have available in that series before I get started of course. If it does become too much, I might have to maybe try FPGAs or something.
I'm planning on using an SRAM IC (probably Non-4000 series) for the program memory.
My biggest problem is I/O. The book highlights a memory-mapped interface, but I'm not sure if that's going to work well for me.

I'm only familiar with the architecture in NAND/Tetris, so I can't really compare it to anything, though I have looked into quite a few modifications already :)

Sparky, what exactly do you mean by "I've got a big interest in computers, and would like to try to build my own"? How far/deep were you wanting to go with this potential project? There are many levels to begin and to end at ;)
 

WBahn

Joined Mar 31, 2012
30,076
I did a Verilog build up of a simplified MIPS CPU on an FPGA. I specifically modeled only the INV, NAND, NOR, and DFF blocks and build everything else up from that. It took a fairly intense weekend, but I was teaching myself a hell of a lot of other stuff about writing Verilog testbenches that do not rely on a particular vendor's tools.

I never got to the next step, which was to start implementing the physical interfaces. But my plan was to do all of that as memory-mapped I/O. Thus, the only thing I used was a UART interface that I had done for another project that let me read/write registers via HyperTerminal. That's one of the beautiful things about an FPGA, you can build up all of those different "chips" and put them in the same chunk of hardware.
 

absf

Joined Dec 29, 2010
1,968
A lot of people have done this with the Z80 microprocessor. It is powerful enough to operate a working system, but is simple enough for a relative beginner to work with.

Just Google homebuilt Z80 and you'll find a lot of information.
Or read the book by Steve Ciarcia "Build your own Z80 computer".

Allen
 

thatoneguy

Joined Feb 19, 2009
6,359
I did a Verilog build up of a simplified MIPS CPU on an FPGA. I specifically modeled only the INV, NAND, NOR, and DFF blocks and build everything else up from that. It took a fairly intense weekend, but I was teaching myself a hell of a lot of other stuff about writing Verilog testbenches that do not rely on a particular vendor's tools.

I never got to the next step, which was to start implementing the physical interfaces. But my plan was to do all of that as memory-mapped I/O. Thus, the only thing I used was a UART interface that I had done for another project that let me read/write registers via HyperTerminal. That's one of the beautiful things about an FPGA, you can build up all of those different "chips" and put them in the same chunk of hardware.
The biggest "beautiful thing" is massive parallelism, IMO. Multiplication can be happening at the same time as a serial out, which is happening at the same time as a read/write to DDR RAM.

That is the limitation of microcontrollers, which are "general purpose ASICs" in a way. Being able to control dozens of stepper motors at insane stepping speeds without a hiccup is something an FPGA can do that no uC can.

Unfortunately, (Fortunately?) FPGAs only come in very high density pin packages, FBGA etc with several hundred of I/O pins. Takes them out of the realm of the hobbyist etching a double sided board. GAL (programmable logic) have gates you can configure, but not logic cells(Lookup Tables) and RAM.

Still, the older generations (2004-2008) can still provide great power for a $40 board if you have the $100 JTAG programmer.
 

THE_RB

Joined Feb 11, 2008
5,438
Or read the book by Steve Ciarcia "Build your own Z80 computer".
...
I built an 8080/Z80 computer by soldering chips into veroboard in about 1982, and later a 6800/6802 version.

But it's really a bit lame, by the time you get (say) a Z80, a RAM chip, an EEPROM chip, and a peripheral interface parallel chip etc, and all those wires hooked up and working you have almost exactly got the same thing as a PIC.

In those days it was fun doing all that work to get that point where it finally "is a computer" and could be programmed to do something.

These days we just buy a single chip and START at that point!
 

Brownout

Joined Jan 10, 2012
2,390
We used to do the same thing with soldierless breadboards. Since the resulting computer isn't very useful, no need to make it permanent.
 

absf

Joined Dec 29, 2010
1,968
I built an 8080/Z80 computer by soldering chips into veroboard in about 1982, and later a 6800/6802 version.

But it's really a bit lame, by the time you get (say) a Z80, a RAM chip, an EEPROM chip, and a peripheral interface parallel chip etc, and all those wires hooked up and working you have almost exactly got the same thing as a PIC.

In those days it was fun doing all that work to get that point where it finally "is a computer" and could be programmed to do something.

These days we just buy a single chip and START at that point!
Back in the '80s, I was playing with Ohio Scientific Inc C1P sbc. 3 years later I bought a used Apple II+. I was too busy learning 6502 language and reading Nibble, MICRO, PEEK65 newsletters. Designing interfaces to plug in the Apple II slots.

In the '90s & 2000s, I started playing with 8085/6803/Z80 cause I can get them free from obsolete equipments. I also bought 68HC11 SBC boards from NMI Inc and 8051 boards from a Canadian company called L S Electronics system Design.

I started playing with PIC only 3 or 4 years ago and I am learning C end of last year. I just ordered my Raspberry Pi 512MB yesterday cause Element 14 is giving offer to its customers.

I am not sure why someone wants to do a SBC nowadays. But to me I dont mind to design another 6502/65816 SBC just for the fun of it. But if I want to do a design for practical use I'll either use PIC/AVR/89S51.

Allen
 
Last edited:

WBahn

Joined Mar 31, 2012
30,076
I don't think anyone is suggesting that building up a simple and primitive SBC from near-fundamental blocks is for any practical purpose, but rather just for educational purposes to really understand the workings from the ground up -- and for the fun and for some rather perverted bragging rights. :D
 
Top