Designing a Memory/IO (ETA-3400) addon for the ET-3400 Trainer

In this video, I build a memory/IO expansion for the vintage Heathkit ET-3400 trainer:

Purpose

I’ve always wanted one of these Heathkit microprocessor trainers, and finally one caught my eye on eBay and I pulled the trigger. The basic interaction with the trainer is through the onboard keypad and LED displays, but Heathkit also made an accessory that added additional ROM, RAM, serial port, and a cassette interface.

This allowed you to use a machine monitor over the serial port, and even featured a Tiny Basic interpreter in ROM that allowed the trainer to be programmed in Basic.

Design

The schematics for the ETA-3400 are well published on the web, and you can readily see exactly how Heathkit implemented the original accessory. One option would have been to faithfully reproduce the original, but that would have been a little inconvenient in comparison to some of the more modern ICs that are available now. Rather than using eight static RAMS and a pair of ROMs, we could simply use one larger RAM and one larger ROM. Rather than implementing address translation in a ROM, it could be done in programmable logic. A modern MAX202 could easily replace the handful of transistors and discrete components used in the original. While slightly newer, these choices are still in the vintage theme of the original.

Below is the schematic:

A modern remake of the Heathkit ETA-3400 Memory/IO Accessory

There’s a lot going on, so click the schematic to get a larger view, or download the PDF in my github repo.

The large 2×20 header is the ribbon cable from the ET-3400. It contains the data bus (D0-D7), the address bus (A0-A15), clock (02), power and ground, and several control lines. Noteworthy control lines include:

  • vma.02, asserted when the CPU wants to access memory,
  • R/W, asserts when the CPU wants to write (vma.02 and r/w together indicate a write; vma.o2 without r/w indicates a read)

RAM and ROM use a 62256 and 28C64 respectively. The RAM footprint I used was technically for a AS6C6246, and that *should* work, but in my prototype all I had as AS6C62256. If you’re ordering parts, I recommend the AS6C62256 just to be consistent and it’s a negligible cost difference for a more capable RAM.

The PIA, MC6821, is right out of the heathkit schematic. It’s a general-purpose peripheral interface and is used to interface to the serial port and cassette. The serial interface makes use of a MAX202 RS232 level converter, which is then plumbed out to a DB25 connector. The hex inverter interposed between the PIA and MAX202 is not needed, just leave it out and set the jumpers to bypass it.

The cassette circuitry is straight out of the heathkit schematics. It outputs audio via an RC network and voltage divider. It inputs the audio using a comparator. I have not tested the cassette interface yet, but I attempted to faithfully reproduce the heathkit circuit.

Address decoding makes use of a ATF16V8 programmable logic device. This take the upper address bits (A10..A15) and asserts the appropriate chip enable (RAMCS, ROMCS, or PIACS).

An optional feature is a raspberry pi header. A pi zero w can be added to the board and will be connected to the serial and cassette interfaces. This allows you to hide a pi inside the case and have remote SSH access to your trainer (or hook up the HDMI and USB to drive a display and keyboard). As I said, the pi is entirely optional.

Implementation

A picture of the PCB is below:

ETA-3400 Remake, finished pcboard

Here’s an annotated picture:

Annotated PCBoard

3D printed case

I made a 3D printed case. It’s about an inch tall and sticks to the bottom of the ET-3400 with magnets:

ETA-3400 3D printed case

Resources.

Comments (3)

  1. trichard3000 says:

    Saw this on Hackaday and I love this! I have an ET-3400 and have kept an eye out for ETA-3400s on eBay, etc. but I can’t imagine paying $300-$400 for one. I’m seriously tempted to reproduce your design. Thanks for the effort!

  2. admin says:

    I’ll probably be putting some bare pcboards up on ebay soon. Made a few revisions to the board currently depicted in the article to move a couple components around (get a header out from under the raspberry pi, etc). Once that board design has been vetted, I’ll be updating the github repo with the new gerbers.

  3. trichard3000 says:

    I’ll keep my eye out for the updated gerbers. If you do a board run for eBay, how do you plan to let people know?

Leave a Reply

Your email address will not be published. Required fields are marked *