Kraftwerk's seminal terminal: a photo essay (restoration diary)

All code, memory readouts, and PCB adapter designs involved in this project and mentioned below are available in a Github repository.

Clicking on any of the images below loads a much higher-resolution version.

This project had been long overdue: it started over two years ago and was then abandoned when I founded Euclyd back in 2024. Last weekend I finally found the time and the motivation to return and finally complete it, and thus here we are.

The inspiration for this project, in fact, runs through Euclyd itself: our flagship product, the Craftwerk™ silicon system, is a nod to one of my—and some of my colleagues'—favorite electronic music bands, the German group Kraftwerk. Indeed, on the cover of their seminal 1981 album Computerwelt ("Computer World" in English)—which provided the soundtrack of my childhood fantasies of becoming a computer designer—one can see the computer terminal that has come to define the aesthetics of early-80s high performance computing: a Hazeltine 1420/1500 (the two models are identical from the outside). See the comparison above.

This project is about repairing and restoring a Hazeltine 1420 terminal for use alongside my single-board mini-computer, Talos ES™, shown in the video below. Talos is itself intertwined with the story of Euclyd, as it provided the first glimpse of inspiration for the design of a new processor architecture targeting AI workloads. And although, architecture-wise, it has practically nothing in common with what Euclyd does, in a sense it has been the company's first—inspirational—prototype.

As usual, I forgot to photograph the system before I began disassembly, but below are some highlights of its original state. The case itself, despite being quite grubby and having some superficial cuff marks, was in excellent state.

The motherboard was a different case. It had many large electrolytic capacitors, most of which will by now be dried up and leak DC. They all need to be swapped out.

More concerningly, an entire component—a power transistor in a TO-3 package—was missing altogether, suggesting that at some point this machine became a parts donor. This doesn't bode well for the state of its electronics. Ironically, when I took up this project again I forgot that the transistor was missing, somehow becoming blind to the glaring empty footprint on the top of the board. This was going to come back and bite me, as I'll report later.

The power rails are provided by four linear regulators—two 7805s, one 7912, and one 7815—that produce a lot of internal heat in a case without active ventilation. For durability, I planned to replace the 7805s with switch-mode DC-to-DC converters, which produce little heat. I also planned to swap out all tantalum capacitors, as those tend to pop like popcorn when they are turned on again after a few decades.

The two full-bridge rectifiers seemed intact, but the board had scorch marks underneath at least one of them, so I decided to replace them too.

The other three components I noted down as points of concern were the two ROMs that work as character generators and the Horizontal Output Transistor (HOT). All three can be seen in the photo below. The reason for the concern is that these parts work full-throttle all the time, for as long as there's an image on the screen, getting quite warm and requiring heatsinks. Heat is the number one enemy of electronic parts' durability.

The two ROMs in particular were a potential death sentence for this project: if I couldn't read their contents out, I would have very, very little chance of getting the associated character bitmaps anywhere else: the ROMs are programmed with Hazeltine's proprietary character sets. And these chips fail regularly because they operate quite hot, so I need to be able to replace them when they go bad. Even more consequentially, the chips aren't just ROMs either: they contain the logic—e.g. shift registers—responsible for generating the pixel bitstream out of the character definitions, and then drive the scan dot on the screen. It has been a few decades since these parts were last produced—the only viable source of replacements is to cannibalize another Hazeltine 1420/1500, which I absolutely do not want to do—so my only chance of making this project viable on the long run is to first read their contents out, so to design replacements myself.

The final point of concern were the sockets underneath the two EPROMs that provide the firmware for the P8049 microcontroller: they looked quite grubby and were of the single-wipe type, which consistently leads to intermittent contact problems and can throw the repair technician for a loop, chasing ghosts.

Checking the board's backside, I could ascertain that the rectifiers did scorch it...

...so I decided to replace them along with all four linear regulators. I replaced the 7805s with Traco Power switch-mode DC-to-DC converters but kept using linear regulation for the other two, as the -12 and +15V rails usually demand very little current. This decision would come back to haunt me later.

Since this restoration is not meant for a museum—the terminal will be used at Euclyd's retro corner—I didn't have to worry about maintaining the historical looks of the board. So on several positions I used radial caps instead of axial ones, because the former are much easier to get and generally have higher rates. I used a dab of hot glue next to the caps to fix them in place, and used heat-shrink around the leads to avoid short-circuiting anything running underneath them on the board.

After this point, I completely forgot that there was an entire transistor missing from this board. I did remember, however, to check the HOT—a French-made part—off circuit, as that part often works the hardest in a CRT-based system.

Sure enough, it was completely blown.

This is how a proper HOT should test:

I replaced the HOT with a modern 'equivalent' (I forgot to consider the minimum base current required by the new part, in comparison to the original one, which would lead to doubt later). I made sure to replace the kapton insulator underneath the heatsink, refresh the heatsink compound, and even upgrade the heatsink itself with a taller one. That latter decision would also come back to haunt me later.

Of course, at this point the question was: did something else kill the HOT? If so, replacing it won't solve the problem, as the original root cause will kill the new part in time. Often, the little retrace capacitor—usually right next to the HOT—going bad is what stresses and ultimately kills it. It sits across the HOT’s collector–emitter (in some cases across the yoke/flyback) and sets the retrace pulse width. If it goes open or drops in value, the retrace pulse narrows and the collector voltage peaks far higher, enough to break down the HOT. Here's the potentially guilty part:

So I pulled it, checked it off circuit and, sure enough, it was far from its specifications. I replaced it with a much more durable, higher-rated, modern cap, even though the mechanical fit was a little awkward (again, this is not a museum computer, so the looks of the PCB don't matter much; certainly far less than durability and robustness).

At this point it was clear that this was a basket case of a machine, which was probably the reason it was retired and served as a parts donor. I knew I had to test as many parts as possible before turning this thing on for a first integration test. So I proceeded to the digital part of the board to test the socketed ICs first. I started by removing the EPROMs and checking if I could read them out properly. Unsurprisingly by now, one of them (the one on the right in the photo below) just wouldn't read.

The EPROM reader complained about lack of contact with pin 21 (see photo below). I tried other two readers and all three of them indicated the same problem. I suspect the tiny gold wire used to wire-bond the die to pin 21 had detached or blown open due to heat, but since the EPROM's window was frosted, I couldn't confirm it. Either way, the chip was a write-off as I couldn't read its contents. Luckily, Bitsavers had the readouts of the EPROMs of another 1420 unit. The second EPROM's code was different from mine (a different software version), so I had to replace both chips to keep the set consistent. I also took the opportunity to replace their odious single-wipe sockets with brand-new, gold-plated precision sockets.

The original sockets were removed without damage to the traces, which also allowed me to document the connections running underneath them in an effort to partly reverse-engineer the board (I found no 1420 schematics on the web, so this project depended entirely on reverse-engineering):

I used new-old-stock 2716 EPROMs made by ST as replacements, after programming them with the code I found on Bitsavers. These chips have got to be some of the prettiest parts the world of electronics has ever produced. Here is my stash:

And here are the programmed new parts installed on their brand-new, gold-plated precision sockets (regrettably, I had to cover their windows with a sticker, as exposure to UV light can erase their programming):

Finally, I also replaced the power LED, as powering it locally with my multimeter in diode test mode hardly made it emit any light at all. These parts get tired over the years, so a fresh new LED was installed.

With all this, the board was ready for its first electrons in decades:

Before I could do it, though, I had to change the mains cable (it didn't meet current safety regulations) and service the chassis and connectors, as well as check the main transformer's winding configuration and secondary voltages.

In case you ever come across a Hazeltine 1420 in the future yourself, here's my mapping of the color code and voltages (as measured on this unit, with the secondaries unloaded).

Primary: five leads = voltage taps for 100 / 115 / 220 / 240 V plus common (international model); two are in use. Secondary: five leads to the main board, two windings.

Secondary winding #1: red – brown, 10.2V AC. It feeds:

  • The first bridge rectifier, which provides...
  • ...the raw input for the two +5V regulators.

Secondary winding #2: orange – yellow – green, centre-tapped, 37.9V AC end to end (18.9V AC each half).

  • Yellow (centre tap) is circuit ground.
  • It feeds the second bridge rectifier across orange–green → a split supply of about +26V and −26V relative to ground.
  • +26V feeds, through a 27Ω ¼W series resistor, the +15V regulator. The +15V rail powers the horizontal output stage (B+ for the HOT via the flyback primary), the horizontal driver, the CRT heater (via a 3V zener and a 18Ω resistor) and a TDA 1170 vertical driver IC (via a 1Ω resistor and a diode).
  • −26 V is the negative rail for the remaining analogue circuitry.

To test the integrated system without closing the case, you must defeat a safety switch that cuts power unless the top case is slotted in place (I defeated it with aluminium tape to secure the switch in the closed position).

The flyback transformer and the CRT harness (including neck connector and the yoke windings) are affixed to the top of the case. Here's my mapping of the flyback and yoke windings (measured on this unit with parts disconnected).

Flyback transformer IDT0702166-1 (294-8132): five leads plus anode lead with cap and earth lead.

  • Red – orange: 0.7Ω, isolated from the other leads. This is the primary. Orange is the B+ end: it lands on the +15V/B+ node of the board (the node with the 1Ω from the rail, the driver transformer primary and the TDA 1170 supply diode). Red is the collector end: it goes to the HOT collector and carries the ~200V retrace pulse.
  • Black – yellow – blue: one tapped winding, black to chassis ground; black–yellow 0.9Ω, yellow–blue 2.4Ω, black–blue 3.0Ω. Grounded auxiliary/HV-return group.
  • Anode lead: open to every lead and to the core (internal HV rectifier; normal).
  • No continuity between the two groups, or from any lead to the core.
  • Green – white: 0.6Ω, the horizontal winding. Green goes to the horizontal output circuit on the board (the node with the linearity coil, which is the inductor paralleled by a 150Ω damping resistor, on the HOT collector side).
  • Red – brown: 3.3Ω, the vertical winding, driven by the TDA1170.
  • No continuity between the two windings or from either to chassis.

Deflection yoke: four leads.

  • Green – white: 0.6Ω, the horizontal winding. Green goes to the horizontal output circuit on the board (a node with the linearity coil, which is the inductor paralleled by a 150Ω damping resistor, on the HOT collector side).
  • Red – brown: 3.3Ω, the vertical winding, driven by the TDA 1170 vertical driver IC.
  • No continuity between the two windings or from either to chassis.

CRT: heater 18.2Ω cold (12V type), all other adjacent base pins open.

I share this in case you, like me, find yourself having to reverse-engineer this system due to the lack of online schematics.

The last step before putting the system back together was to clean the CRT and apply some fresh dielectric grease to the anode cap, as I rather not get zapped by stray arching while working around ~15KV.

With everything minimally mapped and serviced, I proceeded to the first integration test. Immediately, however, I noticed that the ground spring around the CRT touched the HOT's heatsink when the case was closed, because I had used a taller heatsink there. And since that heatsink is connected to the HOT's collector, that would be a straight short-circuit right there. Therefore, before proceeding I had to swap back the original, low-profile heatsink chosen by Hazeltine for a reason.

Finally, I was good to go, with everything connected:

Alas, the result was no image (the CRT's heater didn't even glow, betraying the fact that it was getting no power), while the 27Ω ¼W series resistor feeding the 7815 literally burned to a crisp; it just couldn't pass enough current to the 7815, causing the 15V rail to collapse. The latter, in turn, explains why the heater never glowed and no image ever formed on the screen. The question, of course, is why did the 7815 need so much input current to begin with, given that there was no short to ground?

At first, I cogitated that the TDA 1170 got its power from the oscillations of the flyback transformer through a smoothing capacitor and a series diode. The 15V rail would then be used to kickstart those oscillations but never actually power the TDA 1170. If the oscillations would never start, however, the TDA 1170 would overload the 15V rail (supplied by the 7815) and cause the 27Ω series resistor to burn.

The horizontal oscillations are generated by the DP8350N CRT controller on the board. Theoretically, if it failed it could explain the problem. I thus proceeded to check that it was getting a signal from its crystal oscillator, which it was:

I then checked every step of the chain until the control signal emitted to the horizontal driver transistor at the required 15.6 KHz frequency, and everything was working textbook-fine:

The ultimate test, of course, are the horizontal oscillations themselves, at the collector (can) of the HOT. Those, too, were textbook-correct:

So much for my theory of what was going wrong... It appeared that, in fact, the TDA 1170 vertical driver IC was indeed directly fed by the 15V rail driven by the 7815. But measuring the total current consumption in that rail—by injecting power directly into it from my bench power supply—revealed that it would exceed the operating parameters of 7815. Even more importantly, the 7815 would try to pull more current in than the 27Ω ¼W series resistor would allow through, causing the rail to collapse (as it, in fact, did). Finally, the current the 27Ω ¼W series resistor would let through would cause it to burn within several seconds (as it, in fact, did). So how could this machine be designed in this manner? How could it have ever worked? The whole thing made no sense...

And then it dawned on me: the missing TO-3 power transistor in the empty footprint! Of course, that transistor was the current-boost pass transistor for the 7815: a PNP with its emitter on the +26V raw rail, its base on the 7815’s input, its collector (the can) on the +15V rail, and the 27Ω between base and emitter (all verified in the circuit). Once the regulator drew more than about 26mA, the PNP turned on and carried the rest of the rail’s current (roughly 0.8A: horizontal stage, driver, heater, vertical IC), dissipating about 9W on its heatsink, while the 7815 only set the voltage. With it missing, the 27Ω had to carry everything, burned, and the rail couldn’t come up at start-up.

I could fit the missing transistor back in (it wouldn't be difficult to guess its operating parameters to identify a suitable part), but there was an even better option, available to me because this isn't a museum-grade restoration: instead of the 7815 linear regulator, I could use a much more power-efficient switch-mode DC-to-DC converter that could provide enough current to the 15V on its own, without even getting too hot. It would require a lot more input current, though, which could be provided by replacing the 27Ω ¼W series resistor with a 1Ω 2W one. I proceeded to do exactly that:

In an attempt to reduce the current drawn through the 1Ω 2W series resistor and reduce its operating temperature, I installed a 220µF 35V electrolytic capacitor on the backside of the board, very close to the input of the switching DC-to-DC converter (see photo below). Because it operates by switching, a smoothing capacitor right next to it can provide a local energy storage that covers some of the switching needs. I can share with you, however, that the effect was very minor: only a few degrees Celsius in a resistor that goes to 75C in normal operation (still only half of its rated operating temperature of 150C).

Before I did another test, I looked more carefully at the transistor I picked to replace the defective original HOT: the BU326A, chosen as a same-class Horizontal Output Transistor. Against the original BU606, the BU326A has lower gain, needing roughly 50% more base current for the same saturation. The 1420’s base drive was sized for the BU606, so the BU326A probably switched poorly on the weak drive available during start-up and could have contributed to the problem. Instead, I procured a new-old-stock BU606D (same die as the 606, but with an internal damper and base–emitter resistor that do not interfere in any way with the present circuit) and replaced it:

Since I had the board out once again anyway, I made a couple more upgrades. Indeed, I had noticed that some of the old high-wattage resistors had charred the board underneath them, suggesting that they had overheated during operation in the past. Here's an example:

Although these resistors were all measuring okay, out of an abundance of caution I replaced them with higher-rated modern parts:

Finally, I was ready to turn the system on again.

Lo and behold, this time it worked! I tested it in full-duplex mode by bridging pins 2 and 3 of the DB25 RS232 serial connector at the back (see photo below), so whatever I typed on the keyboard would be echoed back on the screen if everything was doing its job (including the serial IC, the INS8250N):

Typing on the keyboard correctly transmitted and received what I typed:

At this point, the repair phase of this project was essentially complete. The goal from this point on was to increase the robustness, durability and long-term serviceability of this device, so its use can be sustained. And since this isn't a museum-grade restoration, modifications are fair play here.

The first order of business was the two proprietary ROMs that play the role of character generators in sockets U25 and U26. By this point of the project, I had already read out their contents and safely archived them (the Arduino sketch for doing so is available on the project's Github repository). It was a minor miracle that both of these parts still worked. Nonetheless, going forward the likelihood of their failing is unreasonably high. Therefore, I don't plan to keep on using them at all; I left them in for the first test—after liberally refreshing their heatsink compound—just to reduce the number of new variables at play. After the successful test, I put them in safe storage and proceeded to design two adapters.

The adapters replace the DM8678 and DM86S64 16-pin bipolar mask ROMs that contain the font and also a line counter and a dot shift register, so the terminal only feeds them a character code and clocks. Each adapter plugs into the original socket with machined pins and rebuilds that function from standard parts: a 74HCT373 latches the 6-bit character code (plus pin 12, the A7/enable line) when the terminal strobes it; a 74HCT161 counts the 16 scan lines of a character row from the terminal’s line clock, clock-control and clear signals, exactly like the counter inside the original chip; the latched code and the row count address an AT28C64B EEPROM, whose 1 KB image holds the 64 characters x 16 rows x 7 dots dumped from the original chip (the descender shifting the original did in hardware is baked into the image row by row); a 74HCT166 shift register loads the 7-dot row on the terminal’s load pulse and shifts it out at the dot clock; and a 74HCT125 tri-state buffer puts that serial video on socket pin 11, enabled only when the latched pin 12 is low, which is how both original chips were measured to behave. HCT logic is used because the terminal drives the socket with 74LS levels. The two boards differ only in shape (one bends up, the other down, to clear each other) and in the EEPROM contents. The shape and size of the boards were designed to fit into the space serendipitously left empty by three IC positions left unpopulated on the board (see photo above). I suspect those ICs are part of the modem functionality that this particularly unit was not built to support, and which would be useless nowadays anyway.

I placed some rubber feet on the board, right underneath the adapters, to make sure they are mechanically stable in place.

Then I did a thermal analysis of the board with an infrared camera. The idea was to identify the warmest-running components and fit them with proper heatsinks. Three digital ICs got heatsinks: a P8286 octal bus transceiver, the DP8350N CRT controller, and the INS8250N UART (arguably the most important part in a terminal).

Before placing a heatsink on the DP8350N, however, I took the opportunity that it was socketed and replaced it with a fresh new-old-stock part with a more recent date code. This new part will last longer.

Then low-profile heatsinks were glued to the parts with thermal glue:

The little sticker seen in the photo above is for the sake of a future conservator who sees the empty TO-3 footprint and may conclude that they need to drop a power transistor in there. That's no longer needed.

Oh, I also added a little heatsink to the horizontal driver transistor, as it, too, was getting hot.

The thermal analysis has also shown that (from top-left to bottom-right in the photo collage below):

  • The new 1Ω 2W series resistor never runs above 75C (it's rated for 150C or more).
  • The new Traco DC-to-DC converter powering the 15V rail never gets above 65C (also well within its rating).
  • The horizontal driver transistor never goes above 60C with the little heatsink on it (well within its rating).
  • The HOT stays surprisingly cool throughout.
  • The two full-bridge rectifiers also remain relatively cool for their rating.
  • The SRAM ICs run naturally a little warm, but stay below 50C on this board, thereby requiring no heatsink.

The ICs that got fitted with heatsinks run noticeably cooler than before:

The microcontroller that runs the firmware—the Intel P8049—also got quite hot. Like the DP8350N, it is a part made with ancient bipolar technology, which draws a lot of current and runs naturally hot. But instead of equipping it with a heatsink, I replaced it with a more modern, NMOS-based equivalent: the NEC ÂµPD8749HD (the 'H' means high speed and the 'D' identifies the ceramic package, both of which are significant durability upgrades to the original P8049 on this board).

The NEC µPD8749HD is an even prettier part than the 2716 EPROMs I used to store the firmware: this microcontroller has embedded UV-erasable memory for onboard code. The terminal doesn't use this embedded code (pin 7, "External Access" or simply "EA," is pulled up by a zero-Ohm resistor tied to the 5V rail, as shown in the first photo below, which directs the microcontroller to fetch all instructions from external memory, instead of the embedded EPROM), but I programmed it anyway to avoid some future conservator getting confused about the compatibility of this part.

It runs super cool—even cooler than the DP8350N with its heatsink right above it in the image below.

The final step was to remove all keycaps, wash them thoroughly in an enzyme solution, and then clean and lubricate all key switches with electronics detergent and DeoxIT D5, before placing the cleaned keycaps back on. Here are some impressions of the finalized board:

After this, I serviced all connectors across the entire system: they were cleaned with electronics detergent and then lubricated with DeoxIT D5. Where needed, I also used a fiberglass pen to remove the more stubborn points of oxidation.

Particular attention had to be paid to the CRT: Hazeltine originally used a double-sided self-adhesive ribbon to affix an anti-glare screen to the tube's face. Over the decades, that adhesive deteriorated and made a gluey mess of everything, as shown below.

Plenty of IPA and a plastic scraper were enough to clean it all out, and then I re-affixed the anti-glare screen with double-sided tape:

I wrapped some automotive-grade fabric tape around the CRT's implosion band for extra neatness and protection. Then, a final scrub of the case with IPA and a magic eraser, followed by a coat of 303 Aerospace Protector, led to a very satisfying result:

Then it was finally time to put everything back together one last time, so to make sure the modifications—particularly the new character generator adapters—worked as intended.

And it all worked like a charm. I tested all characters to make sure my new adapters were doing their job correctly:

A final tune-up of the image and the thing was ready. Here you can see me tuning up a coil with the case open, even though the case has holes that allow this to be done, in a much safer way, with the case closed. The problem was that my particular tuning tool wasn't long enough to be inserted across the case, so I had to do this with everything still open.

I also adjusted the yoke a couple of times to make sure the image was straight, but twice it went out of alignment again when I closed the case. I think rotating the case by 90 degrees to close it was putting tension on the yoke via the cable harness, which rotated the yoke slightly out of alignment. I didn't feel comfortable tightening the neck screw any further, lest I would break it, so I decided to put a generous dab of hot glue on it to make sure it wouldn't rotate any longer.

Here is the final result, in all its glory:

Stay tuned for an update to this post when I finally connect this classic terminal to Talos CR™. That will be an epic encounter of the very old with the very new in computer tech!