19
\$\begingroup\$

Is it possible to make a simple computer entirely with breadboards and basic electronic components? Is it feasible to, for example construct a scientific calculator in this way?

\$\endgroup\$
10
  • 10
    \$\begingroup\$ It is not only possbile, but people do it, e.g. megaprocessor.com and many more, just google for "discrete transistor cpu" or similar. It just gets awfully complex and takes years to build and debug \$\endgroup\$
    – PlasmaHH
    Aug 23, 2015 at 12:49
  • \$\begingroup\$ Does depend what you mean by a breadboard. If it includes Veroboard, tag strips or dead bug construction anchored down by nails hammered into Mom's (yes) breadboard - all soldered then yes, definitely. If you mean those plastic things that randomly let go of wires, forget it... \$\endgroup\$
    – user16324
    Aug 23, 2015 at 14:05
  • \$\begingroup\$ @BrianDrummond Re plastic breadboards -- its apparently possible (see my answer). I've seen a couple of computers built this way. If one accidentally pulled out some wires, what a nightmare. I'm really astonished they actually run. \$\endgroup\$
    – tcrosley
    Aug 23, 2015 at 18:43
  • 2
    \$\begingroup\$ I think if you had infinite breadboards, you would be turing complete? \$\endgroup\$ Aug 23, 2015 at 21:42
  • 2
    \$\begingroup\$ You really need to discover the Homebrew CPU "web ring" (that was a thing way back in the 90s before search engine dominated the web): members.iinet.net.au/~daveb/simplex/ringhome.html \$\endgroup\$
    – slebetman
    Aug 24, 2015 at 6:16

5 Answers 5

33
\$\begingroup\$

I'm going to disagree that placing a microcontroller on a breadboard qualifies as building a computer on a breadboard. Except for I/O (such as a keyboard and display), a microcontroller by itself is pretty much a complete computer. Just placing it on a breadboard and connecting up a few wires is trivial and can be done in ten minutes.

When the OP asked, "Is it possible to make a simple computer entirely with breadboards and basic electronic components?", by basic electronic components I think it means something more like this:

enter image description here

Now that's a computer on a breadboard (well, several breadboards), built from basic components. The description of it is here. It's made up of a dozen types of 74LS00 series IC's. (I don''t think we want to go all the way back to transistors; the original PDP-8 was the size of a small refrigerator).

As far as a scientific calculator goes, if you built a general-purpose computer like the one shown above, then it could be programmed as a scientific calculator. Constructing a scientific calculator using only logic IC's (no computer) would be extremely difficult; all the manufactures of calculators like that (Ti, HP etc.) used special large scale IC's. Here's a home-built calculator that uses am early 4-bit calculator IC.

I will agree that if one wants to get a computer up and running as quickly as possible, then using a microcontroller is the way to go. If one wants to really understand how a computer works internally, then building one out of basic ICs is the right path.

\$\endgroup\$
3
23
\$\begingroup\$

It is not only possible, I have actually done it: see https://www.vttoth.com/CMS/projects/47

Here is what the wiring on the backside of one of the breadboards looked like:

enter image description here

Of course it all depends on what components qualify as "basic". In my case, the basic components were 74... series TTL chips, roughly a hundred of them. To build a computer entirely from, say, transistors... that would be much too overwhelming.

Also, my 4-bit computer is really not powerful enough to be used as a scientific calculator, mainly because of limitations of memory (256 4-bit nybbles). However, it is not terribly difficult to extend the address space, perhaps using a paging mechanism, and 4096 nybbles (12-bit addresses) might by enough already, 65536 nybbles (16-bit addresses) for sure.

\$\endgroup\$
3
  • \$\begingroup\$ Congratulations. That's quite an achievement. I like the instruction set -- reminds me of a 6800. \$\endgroup\$
    – tcrosley
    Aug 23, 2015 at 22:23
  • 1
    \$\begingroup\$ There's a guy who's working on building a processor using nothing but transistors. The RAM, processor, everything. MegaProcessor.com \$\endgroup\$
    – Cole Tobin
    Aug 24, 2015 at 6:43
  • 4
    \$\begingroup\$ Some people are more patient than I. \$\endgroup\$ Aug 24, 2015 at 10:50
10
\$\begingroup\$

Yes it's possible, but you'd need a bit more than just a few breadboards to come up with a scientific calculator, depending of course on what you consider a basic component: whether you call a transistor a basic component, or a flip-flop, an EEPROM or just something you can solder out from an old refrigerator.

There are some good answers here, but I'd just like to point out one thing that people often don't consider. Looking at the history of computing devices, the difficulty in building a computer from tree bark and nails is not the CPU nor the ALU. The main problem is memory. Because you need a huge amount of it for the whole stored program concept to work. You can make a CPU from a few flip-flops and NAND gates; for example for a power electronics application with specific constraints, I once designed a microprocessor that uses only 69 flip-flops (4 16-bit registers, 4 flags and 1 state register bit denoting FETCH/EXECUTE). It's implemented in silicon and people write software that runs on it. That's simple and it fits into the size of a drain contact of a power transistor. But the memory needed to store any useful program is much, much bigger.

Early on, the memory was the starting point of the design. You could use bi-stable relays as they did in early telephone exchanges. You could use vacuum tubes or transistors to make flip-flops; and the registers of the CPU usually were implemented this way. But for the program and data storage, paper tapes, magnetic tapes, spinning disks or spinning drums were used. Even acoustic waves on steel wire that are constantly received and retransmitted by the electronics. Anything you can think of that could hold some bits for a reasonable amount of time with reasonable cost. Apollo orbiter and lunar lander computers used coil core memories wound up as ropes. All these need different interface equipment and have a huge impact on what the CPU needs to be like to access those kinds of memories. Semiconductor memory only really appeared in the 1970's, finally dismissing that kind of complexity. But then again, modern dynamic RAMS are not that easy either.

Then there is the added wonderfulness of having to design input-output equpment for the computer. A few light bulbs is fine for some applications but if you need text input/output or something even more complex, you are again facing more difficulties. Punch-card readers, printers and paper terminals were a huge business in their days. A VT100 text mode video terminal from 1978 has much more memory and processing power than your scientific calculator breadboard computer would have.

\$\endgroup\$
4
  • \$\begingroup\$ Although it certainly possible to implement memory using flip-flops, I think a concession is needed to allow memory ICs (just its usually the case in these home-brew computers to use a 74181 for the ALU). You can get an 8Kx8 SRAM in a DIP package for about $2. That should be plenty for a calculator. Same for EEPROM. \$\endgroup\$
    – tcrosley
    Aug 23, 2015 at 20:07
  • 1
    \$\begingroup\$ @tcrosley I agree. I'm just pointing out a remark from the history. If you're going to build a homebrew computer today, you're not doing it to follow some arbitrary set of rules, you're going to do it for the fun and learning. And desiging a microprocessor is more fun and a better learning experience than winding 16 thousand bits of core memory ;) \$\endgroup\$
    – PkP
    Aug 24, 2015 at 5:01
  • \$\begingroup\$ @PkP There is something to be said for someone remembering how to weave core memory and getting that documented. Not so much at the level of how a bit or two works, but the practical side of just how do you make 16 kbits without going insane. I've worked on seed beed projects. I can visualize the insanity... I assume that there was once factory automation to do it, but I've seen very little written about the production side. \$\endgroup\$
    – RBerteig
    Aug 24, 2015 at 20:50
  • 2
    \$\begingroup\$ @RBerteig thanks, I agree. Well, I remember reading that the Apollo spacecraft computer's rope memories were woven by very skilled weaver ladies, who had the astonishing patience to very carefully check each one or zero in the code diagram, which denotes if the bit coil is woven through the core or bypassed around it, or something to that effect. I remember reading from the same source that it took six months for them to weave a new ROM after each software modification from the MIT engineers who wrote the Apollo software. \$\endgroup\$
    – PkP
    Aug 24, 2015 at 21:09
7
\$\begingroup\$

It is possible, but the complexity and size depends on what you call basic electronic components. An ALU and sequencer logic is a bit complex, but doable. Memory is simple, but the basic pattern must be repeated an very large number of times (think 1000's of times).

Besides the hardware you will also need software that runs on it. As a rough estimate, for a moderately complex CPU (classic 16-bit instructions 8-bit data level) your software effort will be comparable to your hardware effort. (For a more simplistic CPU you'll need more SW effort.) And how are you going to load that SW into your machine?

Bug hunting (and solving) will be an interesting undertaking. I'd advise you to start wrting in VHDL and run that on a simulator, that will be far easier to debug than a bunch of chips and wires.

Two students of mine created a 16-bit CPU with some basic software (including a GCC backend port) in ~ 1 year, starting with VHDL and C code for simulation. The ALU used 74181 chips, memory was static RAM, and they used an atMega to interface between the PC and their computer. The computer was partly on solderless breadbords and partly on PCBs (the 8 16 bit registers). (These two were not average students!)

\$\endgroup\$
5
\$\begingroup\$

Yes, it is possible. But you need a microcontroller to do the math. This is an example project. It uses AVR microcontroller and 16×2 LCD display.

\$\endgroup\$
5
  • \$\begingroup\$ +1 I have a calculator that uses an ARM processor. These days a microcontroller should be considered a basic component. \$\endgroup\$ Aug 23, 2015 at 12:46
  • 25
    \$\begingroup\$ You don't need a micro, it just makes things easier. \$\endgroup\$
    – PlasmaHH
    Aug 23, 2015 at 12:48
  • \$\begingroup\$ @PlasmaHH either a microcontroller, or multiple breadboards. Have only basic 2-input gates? Have fun. OTOH a ROM or two + a MUX + register = a simple microcontroller already. \$\endgroup\$ Aug 23, 2015 at 14:24
  • \$\begingroup\$ How do you think Microcontrollers do math? With ALU's - made out of silicon / transistors / elementary gates depending on what scale you view the thing. \$\endgroup\$ Aug 24, 2015 at 11:36
  • \$\begingroup\$ Microcontrollers and microprocessors are also made from electronics elements, so you can make them on a breadboard, no need for a real microcontroller \$\endgroup\$
    – phuclv
    Aug 25, 2015 at 9:46

Not the answer you're looking for? Browse other questions tagged or ask your own question.