Hackster is hosting Hackster Holidays, Ep. 6: Livestream & Giveaway Drawing. Watch previous episodes or stream live on Monday!Stream Hackster Holidays, Ep. 6 on Monday!
David Hansel
Published © GPL3+

Arduino Altair 8800 Simulator

Ever wanted to play with the computer that sparked the personal computer age but don't have the cash to buy an Altair? Build your own!

IntermediateFull instructions provided15 hours126,862
Arduino Altair 8800 Simulator

Things used in this project

Hardware components

Arduino Mega 2560
Arduino Mega 2560
×1
Arduino Due
Arduino Due
Either Arduino Mega or Due are required, not both!
×1
LED (generic)
LED (generic)
×36
General Purpose Transistor NPN
General Purpose Transistor NPN
×36
Resistor 10k ohm
Resistor 10k ohm
×36
Resistor 150 ohm
×36
Mini toggle switch SPDT On-On
For 16 address switches (SW15-0) plus power switch
×17
Momentary switch SPDT (On)-Off-(On)
For function switches (RUN/STOP/EXAMINE...)
×8
Metal sheet for front panel backing
×1
SparkFun Bluetooth Modem - BlueSMiRF Silver
SparkFun Bluetooth Modem - BlueSMiRF Silver
Optional. Connecting this to the Arduino TX/RX pins will allow any bluetooth-enabled computer or phone to act as a serial terminal for the emulated Altair.
×1
microSD card with SD card adapter
Optional. Necessary only for disk drive emulation, which is not required for the simulator to work.
×1

Software apps and online services

Arduino IDE
Arduino IDE
Arduino DueFlashStorage library
The Arduino Due does not have EEPROM for permanent storage but with this library data can be saved to the on-chip flash memory. Everything saved gets deleted when re-flashing the Arduino!
Arduino Due soft_uart library
A software UART implementation that allows any pins to be used as a serial interface (similar to the SoftwareSerial library of other Arduino platforms). The files from this library are included in the simulator source since I needed to make some small modifications to integrate them into the simulator.

Story

Read more

Schematics

Hardware setup for Arduino Mega and Arduino Due

Instead of providing full schematics (very repetitive) this document describes which pins to connect to which front panel elements and provides schematics for the sub-circuits (such as LED driver circuits)

LED Stripboard layout

An attempt at showing the layout of the stripboard that the LEDs are connected to. It's a bit crowded but it should be good enough to see how things are connected together. Important is that the components for each LED take up no more than 5 spaces on the stripboard. That way the LEDs can be close enough together to have the front panel at original size.

Code

Arduino Altair 8800 simulator code

Credits

David Hansel

David Hansel

3 projects • 71 followers

Comments