RSSAmplifier

Blog

Insanity 4004

Experiments with the world's first microprocessor
 and other electronic explorations

insanity4004.blogspot.comRSS feed ↗25 posts

Latest posts

FEDEVEL Advanced PCB Layout: Post Lesson 2 notes

I finished Lesson 2 of FEDEVEL Academy 's Advanced PCB Layout course yesterday. As I expected, there ratio of review to new material (for me) is shifting toward the new stuff. There were a couple of confusing points, like the the instructor's strong recommendation to use a separate via for each power and ground connection on a BGA while watching him demonstrate routing two such adjacent balls to a…

Taking FEDEVEL's Advanced PCB Layout Course

As part of a hobby project I'm designing a PCB that will include a Xilinx Zynq-7000 System-on-Chip and a DDR3L SDRAM. Both of these come in ball-grid array (BGA) packages with balls on a 0.8mm grid. This is my first attempt at a PCB using BGAs, but more critically, it's my first attempt with high-speed DRAMs. I'm fairly confident, but at the same time I'm a little bit intimidated. Twenty-some…

A look at a vintage PC's disk storage subsystem

I've been doing a lot of work recently with vintage PC disk storage subsystems. I'm hoping to present a talk on this topic at the VCF East event in April 2026. Here's a preview of some of the material I'm planning to present. As always, comments and questions are encouraged. Parts of a disk storage subsystem A disk storage system can be separated in several logical functions: A computer bus…

My current museum project

Here's what I'm currently working on restoring for the System Source Computer Museum : Yes, this is an IBM System/360 Model 20 from the mid 1960s. This machine's journey started with some friends drinking in a pub in the UK while browsing eBay. They came upon an ad for some computer equipment in a building due for renovation in Nuremberg, Germany, and decided to put in a bid. If this already…

Computeriter Emulator wrap-up

Okay, so it's been 5 months since I updated this blog. I have some catching up to do! Spoiler alert: I did get everything working in time for VCF West. Here's a pic of the CDC-160A system on display in sunny California: What did it take to get it done? I pretty much lived and breathed for this project from mid April through early August. But let me catch you up on what you missed. First, it turned…

Heavy Metal from the 1960s

Any time you're working with older electronics, there's a risk that some of the components may have failed as a result of age. This is especially true of wet electrolytic capacitors. Given that the museum's CDC 161 Typewriter is at least 61 years old (there's an inspection sticker from 1964 in it), the sheer mention of a power supply problem led to a decision to pull the thing out for at least a…

Computeriter Emulator Software Design

Since the Soroban Computeriter is entirely electro-mechanical, I expected everything to operate glacially slowly. Examination of the documentation and measurement of the actual Computeriter proved this true. Printer Output For printing from the computer, the CDC 161 documentation provides this crude diagram. While it suggests the code selection solenoids (TM-1 through TM-6) will be driven for…

Computeriter Emulator Hardware Design

As described here , the System Source Computer Museum asked me to build an electronic replacement for the non-repairable Soroban Computeriter used with the recently-acquired CDC 160A computer. One of my previous projects for the museum was board that plugged into the electronics of a Tempest -shielded Teletype Model 28. The Model 28 uses the 5-bit US-TTY character set, in our case at 75 bits per…

Computeriter Electrical Interface

This drawing from the Soroban Computeriter Coder Unit Technical Manual shows the underside of the Computeriter. The electrical interface to the Soroban Computeriter can be viewed as three mostly-independent blocks: A mechanical "coder unit" that encodes printing characters Switches that signal non-printing functions (space, carriage return, shift, etc.) A "decoder unit" that allows a computer to…

Mission: Emulate a Soroban Computeriter

In the early 1960s a company called Soroban Engineering produced a product they called a Computeriter. This was an IBM electric typewriter, modified with an electro-mechanical encoder to allow a computer to sense what keys on the keyboard had been pressed, and solenoids to allow the computer to operate the keys to print text. This photo is taken from a Soroban technical manual, available on the…

What have I been up to?

Last summer I came across my somewhat tattered copy of the PDP-11 Processor Handbook. This dates to my first job as a software engineer in the early 1980s for EMC Controls. EMCC was a process control system manufacturer whose products ran everything from bakeries to steel mills to the Trans-Alaska Pipeline. A descendant runs the ventilation systems for some of Boston's road tunnels. I got hired…

Populating the ALU board

I decided today was a good day to populate the Arithmetic Logic Unit board I had fabricated in March. I taped the bare board to my solder station workbench (which is separate from the one with all my test gear), then taped the solder stencil down as well. I scooped some solder paste onto the back of an old credit card and used that as a squeegee to apply the paste. The first time I got about half…

Testing the Instruction Pointer board

My project for April and May was to extend my PicoBlaze-based test framework to test the Instruction Pointer board I built in 2012. I also wanted to update the desktop computer in my electronics lab. I'd completed the Verilog implementation of the i4004 CPU at about the same time I assembled the IP board, so the obvious way to test it was to strip out the parts of the Verilog that implemented the…

The most costly phrase

You know what the most costly phrase you can say is? "While you're in there..." Not my computer I've said it while I was discussing work to be done on my car. Suddenly a job that should have cost a couple hundred dollars now costs a couple thousand. I went in to get the oil changed and the tires rotated and I said, " while you're in there... the air conditioning seems weak. " It turns out that…

PCB Reflow with a Skillet: Part 1

The skillet I bought is a Farberware 12" x 12" ceramic skillet, model FW6110027877. Searching the web for this model turns up nothing, so it's probably specific to Wallyworld. This idea is supported by the absurdly short power cord, which is barely 2 feet long including the plug. I did my test with the skillet under the vent hood above my stove, which meant I had to use a heavy-duty extension cord…

Instruction Decoder assembly

My JLCPCB order containing both the Arithmetic Logic Unit and Instruction Decoder boards arrived Thursday afternoon, nine days after I submitted the Gerber files. As is their practice, each stack of five boards are shrink-wrapped together so the boards can't shift against each other and cause damage. I'd also ordered solder stencils for each of the boards. They came individually packaged in heavy…

The importance of return signal paths

In a comment on my post How high and how fast? , Klaus Scheffler pointed out that the "tiny wiggles" in my CLK1 signal could be significant if they exceeded the gate-source threshold voltage of a transistor acting as a transmission gate. He'd experienced issues with this in his implementation, which uses SST215 MOSFETs. Although the datasheet for the Calogic SST215 gives the typical Vgs threshold…

ALU and ID boards sent for fabrication

I started laying out the Instruction Decoder board in late November 2012, and started the Arithmetic Logic Unit board ten days later. Now, only 147 months later, I finally finished their layout and sent them off to JLCPCB for fabrication. Woo hoo! Fabrication time is quoted as 5-6 days, and shipping from China adds another 2-4 days. That puts delivery in the first week of April. That'll give me…

How high and how fast?

Most of the circuitry in the 4004 CPU and other MCS-4 family chips uses a MOSFET to actively pull a signal toward Vss, and a "load" to passively pull it back toward Vdd. In the real 4004 CPU, a "load" is a MOSFET with its gate connected to its drain, but designed so it works sort-of like a resistor. In my re-creation, a "load" is a real resistor. When I did my initial breadboard tests of bits of…

Arithmetic Logic Unit board fully routed

Here's the Arithmetic Logic Unit board: All nets have been routed, and the design rule checks run without error. ALU board bottom layer tracks It's a coincidence that I'm working on the boards in the order of decreasing component count. It's interesting to me that, despite this, the boards have gotten progressively harder to route. As can be seen in the images, the board is fairly densely packed…

Instruction Decoder board layout complete

Here it is, the (hopefully) final layout of the Instruction Decoder board: Like the previous two and several to follow, this board uses stacking connectors to make the connections between it and the other boards that make up the i4004 CPU. Initially I thought all the inter-board connections could be made through the connector on the right, but once I'd split the master schematic into five smaller…

JLCPCB design rules for Eagle

A couple of days ago I "finished" routing the Instruction Decoder board. To be sure JLCPCB wouldn't have manufacturing problems, I used the same Eagle design rules file (DRU) I'd used to fabricate the Scratchpad Register board. The Scratchpad board's DRU file started with the Eagle DRU file JLCPCB posted on GitHub for use with 2-layer boards which I modified for the 4-layer stack-up. Since…

The Instruction Decoder PCB

When I started my efforts to construct a discrete-component replica of an Intel 4004 CPU in June of 2012, I realized that I was going to have to split the CPU into several parts. This was largely dictated my hobbyist license for the Eagle CAD program, which limited me to placing components within a 160mm x 100mm rectangle (that's 6.3 x 3.9 inches). So I split the CPU into five boards: Instruction…

Rant: Ubuntu RAID checking

In addition to a 40-year career as a software engineer specializing in operating systems, I've also managed corporate and personal computer systems. It should be no surprise, then, that my primary home computer system has RAID 1 arrays for several critical file systems. Some years ago, while far from home, I wanted to demonstrate the utility of RAID arrays to a client. As I explained the up-time…

Data bus charge redistribution

In my previous post I mentioned an anomaly I'd noticed in the data bus state during a period I believed it should be floating but stable. Klaus Scheffler mentioned in his comments that he'd seen the same thing on his board. This got me wondering if I could use the simulator to help me understand this behavior. Sure enough, the sim also shows an indeterminate state on the data bus under similar…