2023-04-14 IRQ
Finally implemented teletype input. 4-bit values are read, that is enough for reading digit key presses.
2023-03-06 Scrolling sine wave visual effect
Recorded “sine wave” effect on register LEDs:
2023-03-01 Fire visual effect
Recorded “fire” effect on register LEDs:
2023-01-24 Printed Pi on Consul 254 teletype
Used faster relay instead of trying to fix the teletype output with RC chain.
2023-01-11 Added teletype output
Added decoder for the teletype at addresses 0x90-0x9f.
2022-04-15 Input switches added
Added two 8-bit set of the switches.
2022-01-17 1bit RAM works
I finally soldered and tested all the connections to make 1-bit RAM working.
2020-03-20 Started thinking on RAM
I plan to implement dynamic RAM based on capacitors.
2019-04-03 Calculating Pi
I’ve finished soldering ROM boards (but not yet connected all of them) and created a program for Pi approximation calculation.
2018-05-11 Still slow, but working
Speeding up the computer seems to be impossible. Sometimes the registers can’t be reset during the small clock cycle. Therefore now the clock frequency remains the same.
2018-04-25 Speedup of the computer
On previous videos computer clock generator worked with 100uF capacitors. I tried to speed up the computer by replacing them with 33uF. As the calculation sequence is about 8 relays long (carry propagation in the ALU), there were some glitches at that speed. However, division subroutine works normally with 47uF capacitors. Therefore this will be the fastest operation of the my computer.
2018-04-24 Fixed a bug with flag ALU operations
Now the ALU instructions without the writeback work normally. I fixed the control block by adding one more relay. There were other methods of fixing with more spaghetty wiring, but I prefer to make the wiring compact and have some redundancy for the possible fixing in the future.
2018-04-23 Fixed a bug in ALU sequencing
I tried to execute a division subroutine and encountered couple of bugs:
- The “flags only” version of the ALU instructions didn’t work
- There was a kind of backfeed in ALU
2018-03-23 Obtained a dot matrix display module
I’ve bought on ebay a dot matrix display which was previosly used in a bus.
2017-11-29 16-word ROM is finished
Now computer has ROM for 16 instructions and can execute more complex programs. Here is an Euclid’s algorithm for inputs 15 and 12.
2017-06-19 First program is running
2017-06-01 New memory PCBs are working
2017-03-19 Found a bug in ROM PCBs
I tried to program my 8-word ROM. Simplest increment program seem to be working:
2017-02-12 8-word ROM is almost ready
I soldered all connections in memory block. Now only 8 instructions will be available to execute.
2016-12-27 Put all three together
I recently finished the third module of the computer. Now it can iterate one instruction infinitely, because there is no ROM yet. Here is an example of executing “ADD A, A, 1”:
2016-12-09 Got the plates for the control module
My attempts in creating plates with photo-chemical etching for control module were not successful. Therefore I ordered them in company that creates brass plates mechanically.
2016-11-14 Yet another relay computer build log
“This blog documents my journey in constructing an 8-bit relay computer, from scratch, made from tons of solder, wires, lights, relays, sweat, tears, swearing and money. The design of the computer is based on the one constructed by Dr. Harry Porter at Portland State University.”
2016-04-04 Finished HALT instruction implementation
HALT stops clock generator and resets all clock relays. Start button has to be pressed to continue program execution.
2016-03-30 Implemented two classes of instructions
I’ve already wired processing of “MOV R, R” and “MOV Cond, R, Imm” instructions. Second one is split into “MOV”, “CALL”, and “JMP” subinstructions. I also had to replace two of already soldered relays because of weak contacts.
2016-03-18 PC is incrementing
Today I’ve started PC execution loop, which is capable of continuous incrementing PC (for subsequent instructions fetching). However, there is a bug, which doesn’t allow executing more than 32 instructions :) Video will come later.
2016-02-12 Soldering control block
Found several issues in schematics:
- There is no available contacts for making 1-tick PC selection for update (tick 5). Therefore I will use tick 4 and 5 for selecting PC to address bus for proceeding to the next instruction
- I switched contacts in trigger relays of incrementer, because there are simpler to connect the relay power pin to “inputs” and not to the outputs as on several schemes
- I will also have to add one more S4 signal duplication relay to produce forgotten S4.INC which will be passed to PC Load
2015-10-15 Sequence generator
Sequencer generates 10 signals for different phases of instruction decoding and execution. It supports two speeds and single step mode, when every instruction is started manually.
2015-10-01 Started CPU clock
Soldered clock generator.
2015-09-29 Control module
Started soldering of control block. It will decode instructions and pass signals to other blocks.
2015-06-12 Meanwhile in Russia
radiolok published his work in progress materials on relay computer.
2015-05-27 Finished registers module
The registers module is finished.
2015-05-24 Relay discussion on StackExchange
Found discussion on StackExchange, which references A fistful of relays project.
2015-05-24 Relay Calculating Engine
Relay Calculating Engine is a machine that calculates square roots.
2015-05-23 Testing results on new relays supply
Me and my colleagues tested all new relays. 2 of 40 has one unrealiable contact each. And they actually have white control LED. Now I can differentiate relays in control block by ofunctions and LED color.
2015-05-23 Relay computer
Another computer found on youtube:
2015-05-23 R500/7T Relay Computer
R500/7T computer was built by Christof Traber. It is built from about 500 electromechanical relays and performing about 7 instructions per second. The computer was developed and built between 2001 and Oct 2006
2015-05-23 Jeroen Brinkman's MERCIA Relay Computer
MERCIA means Mijn Eenvoudige Relais Computer In Aanbouw, or My Simple Relay Computer Under Construction. It is a Dutch acronym for a project that is taking me more than a year, and the finish is not even in sight.
2015-05-23 Ian Gordon's relay computer
I recently googled information about other relay computers and found work-in-progress project by Ian Gordon. He already implemented several registers and logical circuits on relays and demonstrates some calculations in his videos.
2015-05-19 Plates for registers module and some more
I finally made plates for the registers module. The toughest part of making them was applying and developing photoresist.
2015-02-05 Simplifying the address bus
I’ve decided to shrink down PC register and address bus. For now it will be 8 bits in width. Then the computer will have opportunity to address 256 instructions. With clock rate 5Hz it will take 0.210256 = 512 seconds to execute them all. This is rather slow. That’s why there is no need to have larger bus. Anyway, I can always add some segment registers to switch between memory banks.
2015-01-17 Farewell to INC and MOV12Imm
I decided not to implement INC W and MOV P, Imm12 instructions. These are almost useless because of Ph:Imm addressing for LOAD/STORE functions.
2015-01-10 PCBs for ROM
I recieved PCBs that I ordered on the factory in China. They produced 10 PCBs. I will use 8 of them to create ROM for the computer. But there is one bug in these boards - I will have to sand switches a little bit, because they do not fit in one line to each other.
2014-12-30 Components supply
I’ve got some components for building of the next block: switches, LEDs, switches for ROM, power supply. I also bought brass plates for making signs.
2014-12-07 Clock generator
Started experimenting on clock generator. I designed a scheme which consists of 2 relays and RC circuits:
2014-11-29 Still working on schematic
Created schematics for registers that I currently soldering. All registers can be connected to both data buses. And M/L registers can be connected to address lines.
2014-11-23 Working on schematic
Going to rework instructions set to create the schematic of the instructions decoder.
2014-11-14 Wiring the registers
For the several last weeks I used to solder the connections within the registers module:
- Made a cable for ALU and Registers file interconnection. I will use it for testing registers connection to data bus and latching the data from there.
- Wired all connections inside the register A.
- Started to wire register LR0 (or LR1? I’ll decide it later).
2014-07-29 Attached all components on the board for registers module
The next step is wiring these components altogether.
2014-06-29 Cabinet for registers
Created cabinet for registers module:
2014-05-28 Started building of the registers module
Last two or three weeks I spent on designing registers module. I decided to make all the registers 8 bit width. I decided to extend 4-bit upper halves of the address registers to increase number of full 8-bit registers that could be used as ALU inputs/outputs.
2014-04-26 Published ALU review on habrahabr.ru
I published review of ALU creation process on habrahabr.ru (in Russian)
2014-04-20 Completely assembled ALU
After last post in the blog I made the following modifications of ALU:
All the brass plates were engraved, drilled, and cut.
Plates were installed on the main board.
Bought and installed plastic backside to the cabinet.
Screwed two hinges for hanging cabinet on the wall.
2014-01-19 Some engraved plates
I’ve got some of the plates with text engraved. Next I will drill the holes and cut the plate apart.
2013-12-15 Assembled ALU module
I tested all ALU functions. Now it looks that everything is almost ok (except the heisenbug with subtract block). Assembled ALU is presented on the following photo:
2013-12-15 A fistful of bugs
Today I finished wiring of the ALU module (excluding wires to output socket). And I made several attempts to fix or replace faulty relays:
- First, I made parallel connections for two switches in result register
- Second, I replaced (twice!) the relay in the result enable circuit.
- Then I changed connection of one of the input pins of the result enable - now it is connected to the “holding” pin of the result (not to the duplicated +V as on the scheme).
- Next bug was in AND module - poor contact in one of the relays prevented evaluating 0 bit of the result of the ‘and’ operation.
2013-12-14 One more buggy relay
I almost finished wiring of the ALU module. After wiring arithmetic blocks’ outputs to the result register I noticed, that some of the result bits do not receive values from the adder.
2013-12-12 Der Relaisrechner
Another one relay computer. This computer has extendable architecture and consists of multiple modules. It also uses semiconductor diodes for some logic operations, that is why it is not “fair” relay computer. But it’s ALU is better than most of the other ones - it can execute 8 operations including SUB/SBC.
2013-12-09 Shifters
Yesterday I finally soldered two shifter modules of the ALU. Both “modules” consist of wires and enabling circuit.
2013-11-27 i² (i Squared) relay computer
i² (i Squared) is a fully programmable 8-bit computer built of of relays. It uses over 300 6v relays mounted on boards and has taken in excess of 1900 hours to design and construct. The design draws elements from several other relay computers built by Dr. Harry Porter (RC1), Jon Stanley (RC2), MCC (RC3) and Fredrik Andersson (Zusie). According to the blog, work on this computer is still in progress.
2013-11-27 1 year of construction
Suddenly noticed, that first entry in this blog is dated 27-11-2012.
2013-11-26 TIM relay computer
TIM relay computer It consists of 152 relays and controlled by punch tape and DIP switches. This computer is the “smallest Turing complete relay computers in the world by relay count (with maybe the exception of the ‘DUO Premium’)”.
2013-11-26 Relay computer "trainer"
Relay computer “trainer”. The idea behind this project is to make a low relay count, single board computer similar to the single-board trainers of the early microcomputer era which can be mass produced for a reasonable price. CPU part of this computer consists of 83 relays. Other parts are based on ICs.
2013-11-04 Soldered subtractor module
Today I finished soldering of the subtractor module.
2013-08-23 Plates, nuts, and bolts
Bought four 200x200x0.3mm brass plates for making relay nameplates and M3 nuts&bolts for fastening plates on the main board.
2013-06-09 Relay testing board
After finding 3 failed relays within the subtractor module I decided to make a testing board for relays.
2013-05-05 Assembled cabinet
I finally assembled the cabinet and inserted the ALU board into it.
2013-04-04 Components for testing
Bought another 24V power supply and one socket for relay.
2013-03-25 More relays
Bought 100 relays SCLD-W-B-L-4PDT-C 24VDC with red LEDs.
2013-03-21 Timber for cabinets
Bought 4 planks (1.5m each) of merbau to make cabinets for ALU and registers modules.
2013-03-17 Kilian Leonhardt's relay computer
Kilian Leonhardt’s relay computer. Built in 2001, consists of 1500 relays. This site contains description of the computer in German.
2013-03-17 First hardware bugs
I almost finished soldering of ALU adder module (and started using next 10m of wire) and found some strange bugs while testing it.
2013-03-17 Adder block is finished
Finished soldering and testing of ALU adder block. While replacing bad relay found another one with corrupted contacts. I probably need to make quality inspection before attaching relays to the board and soldering them.
2013-03-09 1 bit sum
Soldered 1-bit adder module. Now I can get the result of adding two 1-bit numbers and CY selected by the input switches.
2013-03-08 ALU wiring
Made some connections between ALU components. Also connected most of the relays to the ground and +24V lines. I used about 20m of wire to make these connections.
2013-03-01 Backfeed bugs
Found possible backfeeds in ALU schemes. When input register is connected to the result register through the shifter block (because it consists of set of wires) or while passing result to the data bus they can latch values of each other.
2013-02-27 Edmund Berkeley's Simon Relay Processor
The following site contains description and schematic of another relay-based processor.
2013-02-25 Another supply of components
Read the building log of RC-3 relay computer and understood, that I forgot about relay protection.
2013-02-24 RC-3 relay computer
There is another documented relay computer - RC-3 built in Goodwill Computer Museum.
2013-02-24 ALU construction started
Several days ago I started building of ALU board.
2013-02-20 Yet more components
Yet more components were purchased. They will be used to create ALU module:
- 50 switches
- 50 meters of wire
- 100 red LEDs
2013-02-17 More components
I’ve purchased 100 MY4N-J relays. They are packed in 10 boxes - 10 relays per box.
2012-12-12 Zusie
Zusie - is another implementation of relay computer. It is named after Konrad Zuse - a German engineer, inventor and computer pioneer.
2012-12-12 DUO 14 Premium
DUO 14 PREMIUM is a relay computer designed and built by Jack Eisenmann. It can execute a set of 8 commands and has 14 bits of RAM.
2012-12-10 First components
First components for the computer:
- 25 switches
- 25 relays SCLD-W-B-L-4PDT-C 24VDC with red LEDs
- 6 relays TRY-24VDC-S-4CL with green LEDs
- 1 power supply with 24V/6.5A output
- 10 meters of 0.12mm2 cable
2012-11-27 The beginning
This repository was created to describe building of retro-style relay computer. I was inspired by the following implementations of relay computers: