I am building a computer

I thought some more and a full adder in a DPDT+SPDT is still the best I can do. You can compact down to a single DPDT if you can manage to get a NOT for free somewhere–compute the sum as:
S = (A ^ B) ? ~Cin : Cin

…but NOTs aren’t free, and I don’t think there’s any way to pack more than one of them in a DPDT.

I just spent a long airplane ride thinking about how to optimize some logical functions. Will post more after the holidays! Thanks for your input.

What kind of relays are you using? The PCB-mounted relays I’ve worked with are all sealed in opaque housing so you can’t see anything.

Model number is HLS-14F3L, 5v coil version. (They also make a 12v). I specifically searched around for transparent, DIP-style relays when planning for the precise reason that I wanted to be able to see what’s happening inside.

ETA: Data sheet. (PDF)

How far are you planning to take the project? What final spec and functionality are you aiming for?

I did a search out of interest and found that logic lab thingie I was talking about – picture of it here. You can see a bunch of NAND gates and combination AND-NOR gates. The 8 rectangular symbols are flip-flops – essentially, one-bit memories. The knob to the left of the sign controls the rate of clock pulses that you can use as input. You can see some of the lights to the right of the sign, and the switches below them.

The goal is a fully functional computer capable of running its own programs. Whether I get there (and how long it takes me) is unknown. But I have sketched out plans for the adder (90% done), logic unit, three registers, a four-bit flag register, a 12-bit instruction register, and the multiplexer microcode to tie it all together. (A DT relay is automatically a 2:1 multiplexer! Woo!)

I will almost certainly cheat on the main memory and use some 7400 CMOS RAM or something, since building that out of relays would be crazy (and expensive and time-consuming.)

But it’s very early in the project and I haven’t thought that far ahead yet.

I subscribed as well. This reminds me of stuff my friends and I used to do in high school back in the early 1980s.

The video quality is great, I agree. The audio level of the voice recording is much lower than the music, tho. OTGH, the pace of your speaking is excellent.

No. A postage stamp sized silicon chip can contain 30 billion transistors… Today the wire wrapped computer would take up a millionth of the chip.

I was going to suggest that. Build a couple of words out of relays to prove you can do it and then use some inexpensive static RAM. You could even find core if you look around, in theory it shouldn’t be hard to build yourself either.

ETA: Here’s some core for sale on eBay. It’s not mechanical, but it is just magnets.

Yeah, the registers will be enough to prove that I can make latches out of relays; I don’t need to do it thousands (or even hundreds) of times. That would get old fast, and probably take up a good chunk of my apartment. :smiley:

Core memory is an interesting idea, but I know nothing about it. I’ll have to do some reading. But I will probably just use a boring old IC. It’s the operational parts of the machine that I’m interested in building.

Check out the core. It’s big advantage is that it’s persistent memory. You can get some code and data stored using front panel type switches and you won’t need a build an interface to some other storage device to load it again.

Another idea that was used as memory in the 1960s is Delay Line Memory, often used in early programmable calculators like this one on eBay. You could buy a (similar) unit just to scavenge the memory wire. It’s a “serial” wire that twists (via a transducer) and the twist propagates down the wire, one twist/bit at a time, where it can then be re-read. Kind of a neat technology, and not too expensive. It’d be cool if you could have a little flag flutter when the wire twists, if you’d like to make it more visual (but I don’t know if that’s possible).

Another interesting early memory is the Williams tube, which would be very visual but sounds kind of complicated to me. This is the earliest digital RAM!

I like the idea of the relay computer and will watch for it on YouTube. Have you looked at Nand to Tetris from MIT (and the related textbook). It’s covering lots of what you’re doing so might be worth a look as a comparison.

Subscribed, and I don’t really subscribe to anything. This is amazing, and in my most masculine tone of bro-voice, I want to say that your narration/voice is awesome, too.

If you’re anything like me, you’re not going to settle for the modified PCB’s and are going to order the corrected ones (the components are cheap, right?).

Is this too fast for newbies? I’m not sure. A teacher stepping through your lessons could make a great class. I know this stuff, but it’s not something I’ve ever had to think about, and making me think about it is both entertaining but more importantly, enlightening. I really, really can’t wait to watch more.

Before I watched the videos, I was in the “why not use solid state” camp, but I fully see what you’re doing, and support you all the way. Although you say you might use solid state memory, maybe you will use some type of small relay memory in some fashion just to drive the point?

And, since you’re using relays, I wonder if there is the possibility of some sort of confluence between general purpose computing (your stated goal) and relay logic, which, I suppose, is a branch of general purpose computing but also kind of a different creature?

I’m (uncharacteristically) excited to follow along your developments in this endeavor.

Yeah - I guess if there’s to be any general purpose buffer or cache, I’d like to see that done with relays (if only because the idea of buffering fast CMOS ram via mechanical memory is nicely perverse).

I think delay-line memory might be too fast to be able to work with electromechanical logic gates.

However, I wonder if it would be possible to build some sort of mechanical serial storage memory - for example, pushing ‘bits’ consisting of clear vs opaque marbles into a tube of known length - it should be easy to read them with a photodiode or LDR.

Weeellll, the components are cheap, but the boards are a bit of a pain to manufacture. It takes about two weeks minimum at the cheapest rate, so for now since the hacked adder PCBs work fine, I’m going to focus on building other modules.

I sure learned a lesson about using the design rule checker, though. :smiley: I’ve actually never done PCB design before this project.

I am working on trying to strike the right balance. I want to make the series accessible to everyone (because this stuff really isn’t hard or mysterious at all) but I don’t want to bore computer nerds. I’m trying to err on the side of moving the narrative quickly; the nice thing about a YouTube video is you can always pause and go back, or ask questions if something is unclear.

The CPU registers will definitely use relays, so that’s gonna be 64 bits of flippity-flops[sup]1[/sup], at least.

It’s all the same stuff, really, just in a different language. Though relay logic (as you might find in a factory or something) is mostly doing combinatorial logic (i.e. doing Boolean algebra) and a computer requires combinatorial logic and sequential logic.

[sub]1. A flip-flop that goes clickety-clack.[/sub]

True, but you’re being a little pedantic. :slight_smile: I was just making the general statement that the logic in the whole big cabinet pictured could be put on one tiny chip. In fact, of course, it’s true that modern high-density chips are so advanced that they could contain the logic of a whole large roomful of such cabinets, or more. The advances made in digital technology are probably the most remarkable quantum leaps in the history of human tool-making.

I finished building the four four-bit adder boards to create my 16-bit adder. Now I just need to wait for my custom interface board to arrive which will tie everything together, and in the meantime I will write an Arduino program to unit-test the beast. New video this weekend!