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!
The most recent version of the LittleGP-30 PCB has a native USB port for connection to a PC, in addition to the classic RS-232 port. This 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.
Bragging rights: This project was featured on Hackaday. ;-)
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.
Most recent project files
- Building instructions including schematics, parts list etc.
- Eagle schematics and layout for LittleGP-30 main board and front panel overlay
- Gerber files for main board and front panel overlay
- Binary file for FPGA configuration (Spartan 6). Also works for earlier wide-panel versions. For the original “pocket calculator” version, please see the dedicated binary below.
- Switch labels as Microsoft PowerPoint file. For use with any wide panel version.
- INF file to use the USB interface with Windows versions prior to Windows 10. Drivers are on board in all Windows versions from XP onwards, and also in Linux and Mac OS (USB CDC device). Windows XP to Windows 8 require this .INF file in addition to describe the USB device.
- Initialization files to configure the Tera Term terminal program for use with the LGP-30 replica.
- Drum images to quickly set up the magnetic drum memory, e.g. for playing blackjack or lunar lander.
- VHDL source – ZIPped project file for Xilinx ISE. Only needed if you want to study or modify the FPGA source code. The source files are the same for all board versions. For the original “pocket calculator” PCB, just include the appropriate UCF file (pin assignments) in the project.
Files for older PCB versions
- Building instructions for the earlier wide panel version, with RS-232 only (Sub-D connector). All other project files above are valid for this version as well.
- Building instructions for the original “pocket calculator” PCB (portrait format).
- Binary file for FPGA configuration (Spartan 6), for the original “pocket calculator” version.
- Numato Mimas Spartan 6 development board – online hardware orders, documentation and tools for download
- Xilinx Web ISE development environment. A 6 GByte download – not needed for downloading the binary above! Free registration at the Xilinx website required prior to download.
- Xilinx tech support page and a forum post explaining how to get the Xilinx ISE to run under Windows 8 or Windows 10. Unfortunately Xilinx no longer maintains this development suite, but has also considered it unnecessary to support their Spartan 6 platform in the successor software suite, Vivado…
The University of Stuttgart hosts a great archive of LGP-30 programs and documentation. Some documents are in German (there was a licensed manufacturer and distributor for a fully Germanized LGP-30), but plenty of English manuals and program library descriptions are also available:
- ASCII-converted paper tapes and program documentation.
- Manuals and more program documentation.
- Service Manual with a derivation of the CPU’s complete logic equations and full schematics. German language; please see below for an English paper explaining the LPG-30’s logic.
- History and repair of the University of Stuttgart’s own original, working LGP-30.
Cory Heisterkamp is restoring what may be the last near-working LGP-30 in North America. He has a very nice website on the restoration project, which also hosts two classic papers by the LGP-30’s inventor, Stanley Frankel. Highly recommended!
Bottom to top: Numato Mimas FPGA board, LittleGP-30 interface board, and front panel overlay.
LittleGP-30 replica with and without enclosure