©harryvansomeren

Homo Ludens

Play!

Homo Ludens is a book originally published in Dutch in 1938 by Dutch historian and cultural theorist Johan Huizinga. Huizinga suggests that play is a necessary condition of the generation of culture. Homo is the Latin word for 'human'. Ludens refers to sport, play, school, and practice.

Every opportunity now to sport, play, school, practice, and spend time on hobbies! See below for some projects I am working on.

I have never tried that before, so I think I should definitely be able to do that.
Astrid Lindgren, Pippi Longstocking

Work in progress

It will always be Work in Progress!

The Beeb2: an 8-bit homemade breadboard computer.

Building the Beeb2: step by step!

The Beeb2

Alan Turing

The movie The Imitation Game is about cryptanalyst Alan Turing who invented a machine (the Bombe) which decrypted German intelligence messages for the British government during the Second World War. After watching it for the second time I started to dig into the work of Alan Turing again. During my study he was one of the heroes within IT history I got to know. (Fun fact: did you know that the T in Captcha stands for Turing?) And being a hard software guy from origin I delved again into issues like Turing Machines, Backus-Naur Form languages, Boolean algebra and CPU microcode. Microcode is the closest thing approaching hardware I studied. While walking down memory lane and trying to understand the evolution from the abacus, mechanical calculators, computers with vacuum tubes, transistors, integrated circuits and modern CPUs, I encountered the video's from Ben Eater.

Ben Eater's 8-bit homemade breadboard computer

Ben Eater has made a fantastic series of video's about making an 8-bit homemade breadboard computer. A breadboard is a construction base for prototyping of electronics. 8 Bits means it is basic, slow and primitive! It can only calculate with 8 zeroes/ones at a time. Knowing nothing about hardware but with the help of Ben Eater and having the quote from Pippi Longstocking in mind ("I have never tried that before, so I think I should definitely be able to do that."), I decided to make this computer too!

The name

The first computer I ever bought was the BBC B micro computer. The computer was designed by Cambridge based Acorn Computers Ltd. and used by the BBC in England in their Computer Literacy Project. Acorn was later called Arm Ltd. (known for their licensable chip architectures) which now stands for Advanced RISC Machines, but in the past stood for Acorn RISC Machine. BBC B owners loved their computer and nicknamed it "the Beeb". I have very fond memories of my Beeb, so decided to call this Ben Eater inspired 8-bit homemade breadboard computer I am going to make the Beeb2.

Website and YouTube channel

I have the goal to give insight in the steps I make and the things I learn while building the Beeb2. This website will have all (links to the) information in a structured way, my YouTube channel will be used for demo purposes. I am not going to repeat the wonderful work Ben Eater did, so will provide a lot of links to his work.

General information

I wil provide information about:
  • Buying stuff
  • Tools you need
  • Color scheme wires and leds
  • Breadboards and wire (cutting)
  • Resistors
  • Capacitors
  • Integrated circuits
  • LEDs
  • Boolean algebra
  • Other breadboard computers

Beeb2 v1 (functional) components and roadmap

First phase

The properties of the Beeb2 v1 (and probably the easiest order to build the components) are:
  • Clock
  • 4 bit Program Counter (16 bytes)
  • 8 bit Bus
  • 8 bit A and B Register
  • 8 bit Sum Register
  • 8 bit Output Register with 7-segment LED display
  • 128 bit Random Access Memory (16 addresses with 8 bits of data)
  • 4 bit Step Register (used by the Microcode Decoder)
  • 8 bit Instruction Register (8 bits in from the bus, 4 bits out to the bus (16 Addresses), 4 bits out to the Instruction Register (16 instructions))
  • 2 bit Flags Register (for use by the Instruction Register)
  • 16 bit Microcode Decoder (Control Logic) generating a 16 bit Control Word per Step (16 control lines)
  • Reset circuit
  • Test program: Fibonacci Sequence
  • Test program for conditional jump

I need to build an EEPROM programmer to burn EEPROMs for the Output Register. An Arduino Nano) is part of that programmer.
Tick the box to see the used 74LS series IC's (Integrated Circuits): <---

Roadmap

Beeb2 v2 (in random order):
  • 8 bit Program Counter
  • 8 bit Instruction Register
  • Reset Step Counter control line
  • 512KB Flash RAM/ROM (16 Banks of 32KB)
  • 4 bit Bank register
  • Boot from ROM
  • Assembler
  • Compiler
  • Game: Tower of Hanoi
  • OLED display
  • Pushbutton joystick
  • Game: Pong
  • Sound
And maybe for Beeb2 v3:
  • Joystick
  • Game: Snake
  • Real time clock
  • Wifi
  • Playstation joystick connection
  • SD card
  • Boot from SD card
  • Remote control of volume
  • Touchscreen
  • RFID unlock of the computer
  • Interrupts
  • Virtual memory (?)
  • Multitasking (?)


I am already working on an Assembler and a Compiler. And maybe I will also build a kind of operator shell in those tools too. We'll see, it is al going to be very agile! 😇

Tower of Hanoi

Building the Beeb2

Clock

The first module!
  • Switch for manual or auto setting
  • Push button for use in manual mode to generate 1 clock tick
  • Rotary knob to adjust clock speed
  • Orange HALT line

Program Counter (PC)

  • 4 bit (16 addresses)
  • 3 control lines: PC-OUT, PC-IN (jump), PC++ (stop/resume PC)

Bus

  • 8 bit

A and B Registers

Twee registers are enough.
  • 8 bit
  • 2 control lines per Register: A-IN, A-OUT, B-IN, B-OUT (B-OUT wil not be used in first instance)
  • Orange HALT lines

Sum Register

Tedious work, but in progress.

To be continued...