Musings of a Fondue

Homebrew Computer - Overview

Goal - to build a homebrew computer. From scratch.

Inspiration comes from these single board briefcase computers photographed by Rostislav Lisovy.

Inspiration also comes from several Hackaday posts and from reading Steve Wozniak’s autobiography.

Building a computer from scratch is possible. And has been done several times. Dirk Grappendorf for example has an amazing writeup on his build.

This is where the free online course Nand to Tetris comes in. The course teaches you how to build a computer (which they call ‘Hack’) by starting with elementary logic gates and building up all the way to a computer with an operating system.

The course also has video lectures available on Coursera, which I found to be extremely helpful.

I will use the architecture specified in the Nand to Tetris course to build my homebrew computer.

Specifically, I will work through the course and build the ‘Hack’ computer using Python (a language I am comfortable with). I’ll then take the working Python simulation and implement it in VHDL or Verilog so that I can run the computer on an FPGA.

The FPGA implementation is inspired by this student’s implementation and these Hackaday posts. I’m aiming to do something similar, albeit using a custom PCB instead of a prototyping board. The custom PCB will house only the components needed to make Hack work and nothing more.

See this lovely schematic,

The computer will also have a command line interface similar to that of retro computers (like the BBC Micro).

I’m breaking down this project into four chunks:

Part 1 : Work through the N2T course and build a simulation in Python

Part 2 : Rewrite the Python simulation in VHDL or Verilog so that I can flash it to an FPGA

Part 3 : Integrate the peripherals ( screen and keyboard )

Part 4 : Build the case ( briefcase, plexiglass, big red button etc. )

I have no idea how long the journey from idea to implementation will be.

In the meanwhile, here’s a playlist of homebrew computer related videos that I will update as I come across interesting things.