12

I'm trying to learn the fundamentals of computer architecture (more here), and it occurred to me that a retro version of an Arduino or Raspberry Pi could be useful for that.

Does such a thing exist, at least for the purpose stated above?

Wikipedia's entry for the "Single-board microcontroller" has an "Origins" section, which looks interesting, but I'm having a hard time interpreting it. I also came across a "Microprocessor development board" entry. They both discuss "development systems" or "development kits."

Given my ignorance, I'm not sure if one of these would be useful, practical, or affordable.

Edit / Addendum:

To clarify, I'm looking for some sort of kit or system akin to today's Arduino/RasPi boards that could act like a simple general-purpose computer.

I'm unsure of the precise terminology of these newer gadgets, but Wikipedia calls them single-board microcontrollers, i.e., one "built onto a single printed circuit board."

That being said, I don't care if everything exists on just one board, per se, but I'd like a set-up with elements like a CPU, registers, ALU, RAM, ROM, I/O ports, and some human-friendly way to input & output data.

9
  • Define "microcontroller". You can certainly use a 6502 or a Z80 for tasks you'd use a modern microcontroller. It's also not too difficult to make a working system on a breadboard with such a CPU and a couple of other chips, google for "homebrew + CPU name".
    – dirkt
    May 10, 2017 at 15:13
  • Are you talking about devices like S-100 or VME bus controllers? They certainly existed.
    – Chenmunka
    May 10, 2017 at 15:18
  • Hmm. I guess my ignorance is showing here. I'm looking for some sort of kit or system akin to today's Arduino/RasPi boards that could act like a simple general-purpose computer. Perhaps I mean a single-board microcontroller, i.e., one "built onto a single printed circuit board." (Wikipedia) Actually, I don't care if everything exists on just one board, per se, but I'd like a set-up with a CPU, registers, ALU, RAM, ROM, I/O ports, and some human-friendly way to input & output data. Does this better describe what I'm looking for?
    – EJ Mak
    May 10, 2017 at 15:41
  • 2
    @EJMak In which case, a breadboard and this answer would do you very, very well. You'll need a Z80, RAM, ROM and latches & transceivers (for I/O ports), as well as some logic gates to map memory etc. It's one of the simplest setups that illustrates what you're looking for. Please edit your question to explain what you want, as opposed to how to get a specific type of solution. (This is known as the XY problem and is very common on the Stack Exchange network.)
    – wizzwizz4
    May 10, 2017 at 16:34
  • 1
    IIRC the CIC chip in the NES uses a 4-bit microcontroller by Sharp
    – NobodyNada
    May 11, 2017 at 2:24

9 Answers 9

15

8051 and 8052 are cores of old microcontroller, that have aged quite well, doing what they did but in packages much smaller than "in the days of yon". and are implemented to this day as cores of special-purpose chips, making them programmable - things like voltage regulators, battery charger controllers, infrared interfaces, stepper motor controllers and so on often get 8052 core functionality making them "arbitrarily customizable". The cores have also been implemented in VHDL, and as result you can make an arbitrary chip in FPGA and give it a "CPU" within the same chip by importing the '52 core into your code and connecting it to whatever custom circuitry you projected. Thanks to support for embedded C, BASIC and a rather friendly assembler, they are also nice to program, and due to tiny architecture, they are not power hungry and can be seriously miniaturized - a special purpose chip 3x3mm size, serving as obscure peripheral of your device, can be made "fully programmable" thanks to them.

1
  • 1
    And of course there's their predecessor, the 8048, probably best known for use in the keyboard interface of the IBM PC. Also, the rather expensive 8052AH-BASIC was a version aimed at newbie type embedded development much as Arduino is today - line-based serial text editing of Basic on the system itself, with program storage and retrieval to UV EPROM. Jul 2, 2017 at 7:02
12

I would suggest the PIC 16F54. Although that part is fairly recent, it is essentially a flash-programmed version of a mask-programmed part that debuted in the 1970s. The 1970s part had a few limitations compared with the modern parts--most notably the features that are controlled by the OPTION instruction in the newer parts were controlled by the manufacturing process in the original--but the instruction set and general architecture has remained identical in the intervening decades.

4
  • Not sure why this isn't upvoted more -- maybe because of OP's request for retro versions of Arduino or Pi? -- but if the question is ever so slightly broadened to include retro hardware that were predecessors to the Arduino in particular, then the PICs would be my first choice as well.
    – user
    May 15, 2017 at 11:49
  • @MichaelKjörling: I remember having seen a GI data book back in the day, but I didn't keep it since I had no use for mask-programmed parts. I've seen scans since, but don't have any links handy. Those would improve the answer since it help show just how much today's PIC has in common with the 1970s version. I think the 1970s version required more clocks per cycle and the outputs were factory-selectable between open-collector with no pull-up and open-collector with a pull-up that was always on (even when the output was low).
    – supercat
    May 15, 2017 at 14:32
  • This is the moral equivalent, at the very least — PIC was one of the most common things for a hobbyist to pull out if they needed a micro in a project, and it's still far from dead :)
    – hobbs
    Oct 29, 2017 at 5:16
  • @hobbs: I don't think PICs became available with EPROM, which would have been a prerequisite for hobby use, until well after the area of "classic" microprocessors (6502 etc.). Still, the architecture is definitely "retro".
    – supercat
    Oct 29, 2017 at 13:34
8

Sure thing they exist! For example, i8048 is a good example, not widely used today and one of the founders of so-called 'microcontrollers'.

I've eventually found this: retro i8048 board, which looks much like contemporary arduino boards :)

If we take only age of the architecture as the criterion of 'retro', then there are also i8051 family, PIC12 family, 68HC05 family and many more, yet not very known to me.

2
  • 2
    I'd determine 'microcontroller' as an entity, which incorporates in a single chip RAM, ROM, CPU and some peripheral devices and (at least in some configurations) which is able to operate standalone (i.e. no extra support chips, external ROMs, RAMs, etc.). From this point of view, i8048, i8051, PIC12 (12bit command words) and 68HC05 are all microcontrollers.
    – lvd
    May 10, 2017 at 19:48
  • 2
    An i8048 (not as a discrete chip anymore) is still in modern PCs: wiki.osdev.org/%228042%22_PS/2_Controller May 22, 2017 at 11:45
8

The olduino boards use either an RCA 1802 or a Z80 to reproduce a subset of Arduino functionality. These are microprocessors pretending to be microcontrollers, though, and the educational scope seems limited.

0
7

I, of course, think the Olduino is terrifically educational but if you want something simpler, both the 1802 version and the Z80 version are based on the Membership Card series of microcomputer kits. The membership card kits are self-contained, programmed with switches, and meant to fit in an altos tin. The Olduino's are programmed in C or assembly language on a mac, windows, or linux computer and the code is downloaded like an arduino. They're a bit bigger than the arduino but they can take most arduino shields so you can have a web server running on a 1970's era processor attached to a standard Ethernet card.

6

A version of the 8052 with a built in interactive BASIC (via serial port) was actually sold as an Intel product in the 1980s. Some ROM images of that interpreter can be found on the web and uploaded into a flashable (or UV-EPROM) 8052. These chips will need the usual paraphernalia of a small 8051/8052 system: Clock crystal, reset circuit, serial level conversion (or straight connection to an usb-to-rs232 chip), address/data latches if you want to add any memory-mapped peripherals.

Mind that development boards that AND PSEN (correction: /PSEN) and CS (correction: /RD) together to facilitate ROM monitors need to be modified to support the interpreter.


Ah, that needs explanation: Before you had MCUs that were quickly re-flashable in-system, one good way to test things out as a developer was putting a monitor program (a mini-OS if you will) in the ROM and feeding it code via the serial line from a host computer. Since an 8031/8032/8051/8052 is a harvard-like architecture that addresses program and data store in separate spaces, you absolutely needed external RAM and a bit of circuitry to make it accessible as both program (/PSEN line) and data address space (/RD line).

Burning EPROMs to test code was impractical unless you had a large supply of EPROMs (and they were expensive, windowed-EPROM versions of microcontrollers like the 8748/8751 even more so!) - you needed to erase them before reprogramming, which takes 8 to 15 minutes.... EEPROMs, expensive and slow....

Needs another explanation: Every "classical" 8051/8052/80c517/537 (Essentially, the 40pin and up versions. Even a mask ROM version pulled from some old keyboard or VCR!) can be wired up as an 8031/8032 and forcibly driven from an external program store. The prescribed wiring in the datasheets for the 805x (ROM or Flash) vs 803x actually decided under what personality the chip ran. Very likely, no 8031 was ever made as such, given there must have been a good supply of mis-programmed ROM 8051/8052 around...

PS, don't get fooled by outrageously high clock rates (up to 40MHz!) for a 1970s design: they are very microcode heavy and have very bad instructions per clock cycle ratios (12 clocks per instruction is the minimum on an 8051 running off ROM)...


Here's some detailed interviews with the people that designed the 8051 and 8048...

http://archive.computerhistory.org/resources/access/text/2013/05/102658339-05-01-acc.pdf http://archive.computerhistory.org/resources/access/text/2013/05/102658328-05-01-acc.pdf

1
  • In many cases, devices that require large numbers of cycles per instruction do so not because of microcoding, but because of bit-serial architectures. Instead of having an ADD instruction perform a computation on 8 bits all at once, it may use a single full adder with a carry latch to process each bit in sequence. Such an approach can drastically reduce not only the amount of circuitry required to perform an addition, but also the amount of routing required for buses and register selection.
    – supercat
    Mar 23, 2020 at 18:49
2

Many 8051 development boards seem to be listed, from multiple vendors including Amazon.com, as currently available. The 8051 is a circa 1980 vintage design, if you consider that retro enough.

1
  • There are still hundreds of millions of 8051 descendants sold every year. Oct 30, 2017 at 2:47
1

You got it...you're looking for a "development board" or an "evaluation board". These are typically single boards produced either by the microcontroller/microprocessor manufacturer (Intel, Motorola/Freescale, TI, etc) or a shop that specializes in dev boards (IAR, Olimex, etc) to give engineers a known-working platform to learn about a given chip. These are produced at various price and feature points to entice engineers to get interested in designing with their chip. Some are as simple as just a chip with I/O broken out to pins (like a shield), a serial transceiver and power supply; others have wide varieties of I/O, displays, memory, expansion, etc. Usually, they are bundled with a monitor and basic development kit as well (assembler, limited function compiler, etc); occasionally the programming is built in (BASIC or FORTH in ROM). You can buy them new, or troll eBay for the more retro experience. Basically, just decided what retro architecture you're interested in and search for a board that meets your price and feature needs. I like picking up the odd eval board...it lets you learn a bit about obscure architectures without a lot of investment and without the hassle of trying to roll your own design.

1

Here is a proposed design for a portable electrocardiogram (ECG) instrument that uses a Gameboy Advance (GBA) (from 2003) as a microcontroller. The advantage of the GBA is its light weight, good graphics, low display latency, and low cost. It has an ARM7TDMI CPU which is a precursor to the ARMv8-A used in the Raspberry Pi.

In actual use, here is the display unit of a GBA in an ECG with what appears to be a custom microcontroller board.

You must log in to answer this question.

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