Skip to the content
2 layersPanel old, the printed circuit board in 3D

What started as a Intel 8080 emulator turned into a Altair 8800 emulator with associated hardware for a front panel.

Copper layers
2
Thickness
1.6 mm
Parts
103
Nets
112
Pads
363
Tracks, vias
592, 26
Pours
1
Routed
Yes
KiCad
KiCad 4
Created
15 Dec 2014
Updated
3 Apr 2021

Overview

Panel old is an open-source printed circuit board by dankar, from the dankar/altair8800 repository on GitHub, published under the MIT licence. It is a 2-layer board with 103 parts on 112 nets, routed with 592 tracks and 26 vias.

It is built around the 74HC595, 74LS165PC and 23LC1024-E/P. Its parts include 41 resistors, 32 diodes, 20 switches, 9 ICs and 1 connector.

Main components

3

README

README.md

altair8800

What is this?

What started as a Intel 8080 emulator turned into a Altair 8800 emulator with associated hardware for a front panel.

An updated version of this project is available at https://github.com/dankar/nanoaltair8800

Building

The build for Arduino Uno is the most up to date. It should work to run "./build" and then "make && upload" in the arduino folder to compile and program.

arduino-mk is used by the makefile.

The code will look for certain files on the SD card. "88dskrom.bin" is a disk bootloader which will be loaded to offset 0xff00 in memory. "disk1.bin" and "disk2.bin" will be used by the 88-DCDD emulator and will act as disk 1 and disk 2 respectively.

Completeness

Passes Kelly Smith test and cputest.com. Runs CP/M and all kinds of BASIC I could find. Altair DOS not working for some reason (complains about insufficient memory). Support for 88-DCDD. No tape or cassette.

There are probably still a few bugs that needs ironing out.

The performance is pretty poor. The emulator runs a couple of times slower than an original Altair 8800 which is a bit disappointing. It's of course also possible porting it to a faster MCU with more memory. Higher optimization levels will cause the code not to fit on an atmega328 but there are still code optimizations to be done. It is currently not possible to stop execution once started with the RUN/STOP switch. It's way too slow to check the front panel switches for each main loop.

Hardware

A front panel has been designed and is available as a KiCad project under the PCB folder. The front panel is basically a bunch of shift registers for input from the switches and output to the LEDs, as well as a 23LC1024 SPI SRAM chip for memory and a MicroSD reader. Everything is attached on the SPI bus to the Arduino.

Known bugs

The current hardware implementation has a bug in the MicroSD card holder-area. The pins are connected as they should be for a regular size SD card and not a MicroSD. If you want to use the panel with a MicroSD card you need to fix this.

Raspberry Pi

The current code in the repo now supports running on Raspberry Pi instead of Arduino. This means that the MicroSD slot is not necessary any more, as well as the SRAM chip. The code runs faster on a Raspberry Pi as well. I would recommend this route for anyone interested in their own panel.

Todo

  • Separate the Intel 8080 emulator and the Altair 8800 hardware emulation. E.g. make the port IO more abstract instead of Altair 8800 specific.
  • Optimizations
  • RUN/STOP switch enabled when running

Parts

103
QtyValueFootprintReferences
32220RResistors_ThroughHole:Resistor_Horizontal_RM10mmR1, R2, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R21, R22, R23 +16
32LEDLEDs:LED-5MMD1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +16
16SWITCH_INVpanel:SwitchOnOnSW1, SW2, SW3, SW4, SW5, SW6, SW7, SW8, SW9, SW10, SW11, SW12, SW13, SW14, SW15, SW16
910KResistors_ThroughHole:Resistor_Horizontal_RM10mmR33, R34, R35, R36, R37, R38, R39, R40, R41
474HC595Housings_DIP:DIP-16__300U1, U2, U3, U4
4SP3Tpanel:SwitchOnOffOnSW17, SW18, SW19, SW20
374LS165Housings_DIP:DIP-16__300U6, U7, U8
123LC1024Housings_DIP:DIP-8__300U5
1CONN_01X09Pin_Headers:Pin_Header_Straight_1x13P1
1CONN_microSDopendous:Memory_Card_microSD_3M_290805U9

Similar boards

  • 2 layers85.1 × 31.8 mmEsp01Expander, the printed circuit board in 3D

    Esp01Expander

    ruenahcmohr/esp_01Expand32

    esp-01 (esp8266) IO expander, 16 output, 16 input = 32

    20 parts15
  • 2 layers150 × 150 mm8bit computer, the printed circuit board in 3D

    8bit computer

    halfburnttoast/TCPU8-Alpha

    Discontinued computer I made in 2020

    138 parts4GPL-2.0
  • 2 layers138 × 115 mmPolymod proto 1, the printed circuit board in 3D

    Polymod proto 1

    mattybrad/polymod4

    A polyphonic digital synthesizer which can be patched like an analog modular synth.

    133 parts2GPL-3.0
  • 2 layers99.6 × 57.9 mmPaper badges, the printed circuit board in 3D

    Paper badges

    dodgymike/bsidescpt2016badge

    68 parts
  • 4 layers64 × 93.5 mmModule io, the printed circuit board in 3D

    Module io

    tracetechnical/house-plc

    149 parts
  • 2 layers193.5 × 80 mmAfterglow nano, the printed circuit board in 3D

    Afterglow nano

    bitfieldlabs/afterglow

    Pinball retro afterglow

    85 parts32
  • 2 layers128.7 × 81 mmAfterglow nano smd, the printed circuit board in 3D

    Afterglow nano smd

    kitspace-test-repos/kicad6-file-collection

    132 partsMIT
  • 2 layers138.4 × 91.4 mmSTM32 MegaBlaster, the printed circuit board in 3D

    STM32 MegaBlaster

    AidanHockey5/STM32_VGM_Player_YM2612_SN76489

    A Sega Genesis music player based off of the STM32 BluePill board and real YM2612+SN76489 sound chips.

    96 parts117AGPL-3.0

Questions

What parts does the Panel old use?

103 parts, built around the 74HC595, 74LS165PC and 23LC1024-E/P. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Panel old KiCad files?

From the dankar/altair8800 repository on GitHub, at the commit this page was made from: the board is pcb/panel_old.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Panel old design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).