The LGP-30 was a commercial computer, released in 1956. Due to its simple design and relatively low cost, it may be seen as the first “personal computer” – to be used by a single user as their “desk computer”. (It could sit by your desk, and was the size of a desk too.) Designed in the age of vacuum tubes, it needed only 113 tubes in total, of which only 24 were used in the CPU itself! This simplicity was achieved by a bit-serial CPU design, which was tightly integrated with the magnetic drum storage unit. The magnetic drum contained not only the main memory, but also the CPU’s three 32-bit registers, and several tracks with timing signals to control the instruction decoding and execution.
This page describes a replica that is true to the bit-serial implementation and its timing, but uses modern components. The CPU and the magnetic drum storage are recreated in an FPGA – by implementing the complete logic equations published by the LGP-30’s inventor (in a scientific paper and in the computer’s service manual). The magnetic drum, while implemented in on-board memory inside the FPGA, is made tangible via an optional video display of its contents.
This way, one can play with all the quirks of the LGP-30, including the timing behavior of programs, which depends critically on the position of instructions and data on the magnetic drum. For those who want to really dive into the details of the bit-serial design, the clock rate can be slowed down (all the way to single step, bit-by-bit clocking), and the contents of the CPU’s tube-based flip-flops can be inspected on an LCD (all 15 bits of them!).
The original LGP-30 –
"smaller than a desk"!
The FPGA-based replica –
much smaller than a desk...
This replica is based on a low-cost FPGA development board, the Numato Mimas (Xilinx Spartan 6 FPGA). I have added a front-end board to provide all necessary I/O, and programmed the FPGA to implement the LGP-30 logic unit, translate characters from an external ASCII terminal to the code used by the LGP-30's "Flexowriter" typewriter, and drive an LCD and an external HDMI display to visualize the inner workings of the LGP-30.
At the moment, this is just a single web page, to host the data files and description for the replica. There are pretty comprehensive building instructions below – please start there if you want to learn more. This is a hobby project only, and I don't offer kits, but I currently have a few spare PCBs around. If you have any questions or comments, feel free to contact me via the email address below!
New! As of October 2017, I have completed a new version of the LittleGP-30 PCB. A native USB port for connection to a PC, in addition to the classic RS-232 port, enables easy data transfer and power supply from any modern PC, with a single USB cable. The updated binary files also bring some improvements for all older LittleGP-30 boards: Flip-flop contents are displayed and decoded on the HDMI screen, to make it easier to follow the operation in single-step mode. There is also a nicer "oscilloscope" display on the LCD, improved encoder debouncing and drum positioning, and the option to adjust the LCD contrast via the encoder.
Refer to the the "most recent" files if you want to build and use the latest version of the LittleGP-30. This has the "wide panel" layout pictured above, and USB as well as RS-232 (mini-DIN connector) interfaces on board.
Unless otherwise noted, the files also work with earlier versions of the LittleGP-30 PCB. A few files which are version-specific can be found under "files for older PCB versions" below.
The University of Stuttgart hosts a great archive of LGP-30 programs and documentation. Some documents are in German (there was a distributor or even local manufacturer for a fully Germanized LGP-30), but plenty of English manuals and program library descriptions are available:
Bottom to top: Numato Mimas FPGA board, LittleGP-30 interface board, and front panel overlay.
LittleGP-30 replica with and without enclosure