Skip to the content
2 layers18.3 × 51.2 mmMCM776x Character Generator Adapter, the printed circuit board in 3D

MCM776x Character Generator Adapter

RetroStack/MCM776x_CharGen_Adapter10

Hardware adapter to replace a MCM776x character generator with a ROM (e.g. MCM7760, MMC7764 used in TRS-80 Model 1)

Size
18.3 × 51.2 mm
Copper layers
2
Thickness
1.6 mm
Parts
11
Nets
27
Pads
99
Tracks, vias
312, 11
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
4 Mar 2024
Updated
3 Oct 2024

Overview

MCM776x Character Generator Adapter is an open-source printed circuit board by RetroStack, from the RetroStack/MCM776x_CharGen_Adapter repository on GitHub, published under the MIT licence. It is a 2-layer board of 18.3 × 51.2 mm with 11 parts on 27 nets, routed with 312 tracks and 11 vias.

Its parts include 2 ICs and 2 connectors. It belongs with the interfaces and adapters boards of this library.

README

README.md

MCM667x Character Generator Adapter

This repository provides an adapter for the Motorola MCM6670 and related (MCM667x series) character generators for vintage computers. ROMs with various character sets are provided in a separate repository. The entire project is available under the MIT license.

Adapter Variations Adapter Variations

Project Details

Latest Files

In the "Latest" folder, you'll find the most up-to-date design files, including:

  • Gerber files suitable for popular online PCB manufacturers like PCBWay and JLCPCB. Most manufacturers should be fine with either.
  • A Bill of Materials (BOM) in both CSV (with sources) and PDF formats.
  • Layers exported in PDF format.
  • The full schematics of the adapter.

Implementation

The adapter has been implemented using KiCAD 7. The KiCAD project files are included in this repository.

PCB Front PCB Back

Assembly Instructions

PCB

  1. Get a straight male pin header with pitch (2.54mm; standard) and break it to a 9-pin length. Do this twice. A machined header is recommended if the adapter will be inserted into a socket. Inserting a square pin in a socket might damage them.
  2. Solder the pins in place into the central lengthwise holes. To align them correctly, you can use another socket or a breadboard. Stick the longer parts into the socket/breadboard and put the PCB on top. Solder first both edges on each. Recheck if they are flush to the header. If not, reheat the corner that needs correction and press down on PCB until flush. Then, solder all other pins.
  3. Install the resistor network. One edge has a square around one pin. This should be where pin 1 will be inserted. Pin 1 is identified on the resistor network usually with a dot.
  4. Write/burn one of the binaries for character sets onto a ROM.
  5. (Optional) Solder a socket in place. Similarly to the headers mentioned above, only solder one pin on each side before soldering all to be able to make adjustments as needed. Adding a socket is not recommended for machines which do not have enough space for it (e.g., TRS-80 Model 1). For these, you need to skip this step and solder the ROM directly to the board.
  6. Solder the ROM to the board or insert it into the socket.

Partly Assembled

The adapter provides various configurations. Depending on your ROM used, only some PINs can be configured. See the description on the board for more details. For example, a 27256 ROM only uses 14 pins and therefore only 5 pins can be configured. The 6th will not have an affect.

NOTE: Keep in mind that the bits are active-low. That means if you want to put set a 1 on a specific address, you leave it unbridged. If you want a 0, then bridge it. This can be fixed by using a reversed/inverted ROM. See below for more details why that is.

NOTE: The board exposes the bits from right to left. If you prefer left to right (e.g. for DIP switches to match labels), then flip the address bits in the ROM or use the provided "f" versions of these.

Here are some examples:

No Configuration
  1. Clip off extension board on perforated line.
  2. Use solder bridges on the bottom to pre-select a character set.
Jumper Caps
  1. Add a 2 row pin straight header (2.54mm pitch) to the center two pins of the extension board. You need to leave one row on each side (on edge and on the side next to the ROM).
  2. Add jumpers.

Assembled

Right Angle Jumpers

NOTE: Due to space constraints, only 5 jumpers can be used. 7) Clip off extension board on perforated line. 8) Add a 2 row pin right-angle header (2.54mm pitch) to the bottom of the PCB, extending one end out over the board where the extension was. 8) Add jumpers.

Assembled

DIP Switches

NOTE: For TRS-80 Model 1: Use low-profile dip switches to make sure the adapter fits in the case. 7) Add a DIP switch on the extension board. The DIP switch should cover all holes from front to back.

Assembled

DIP Switches on extension board

NOTE: Due to space constraints, only 5 DIP switches can be used. 7) Clip off extension board on perforated line. 8) Solder up to 6 wires (e.g. ribbon cable) to the bottom of the PCB. Use up to 5 wires for each address line, which is the row close to the center of the board (next to the revision number). To identify which address line is which, see the label just below the ROM on the top of the adapter PCB. Solder at least one wire to any of the holes closer to the edge of the board. These are ground pins and therefore any could be used. 9) Solder all wires to the extension board. Use the central two rows of holes. Solder it on from the bottom as DIP switches will be added to the top. Solder the address lines closest to the perforated line where the extension board was attached to the adapter PCB. Solder the single ground wire to and other hole of the second row of holes further away from the perforated edge. 10) Add a DIP switch on the extension board. The DIP switch should cover all holes from front to back. You may need to trim the soldered pins of the cable to solder the DIP switches as close to flush as possible.

Assembled

Jumper caps on extension board

NOTE: Due to space constraints, only 5 jumpers can be used. 7) Clip off extension board on perforated line. 8) Solder up to 6 wires (e.g. ribbon cable) to the bottom of the PCB. Use up to 5 wires for each address line, which is the row close to the center of the board (next to the revision number). To identify which address line is which, see the label just below the ROM on the top of the adapter PCB. Solder at least one wire to any of the holes closer to the edge of the board. These are ground pins and therefore any could be used. 9) Add a 2 row pin straight header (2.54mm pitch) to the center two pins of the extension board. You need to leave one row on each side (on edge and on the side next to the ROM). 10) Solder all wires to the extension board. Use the row closer to the perforated edge to solder the address lines. Solder the single ground wire to and other hole at the bottom edge furthest away from the perforated edge. You can solder it from the top or bottom. 11) Add jumpers.

Why is the configuration active low?

Some ROMs, especially the EEPROMs have an active-low WRITE pin that needs to be HIGH (or 1) in normal (read) use. To avoid putting ROMs in an incorrect mode (write mode instead of read mode), all additional pins are pulled high by default through pull-up resistors.

Why are address lines from right to left?

Having them in this orientation was the simplest without adding complexity to the design. Additionally, the addressing depends on what type of configuration you use. Binary numbers are usually written from right to left (as implemented) and this works best for jumpers, for example. However, DIP switches uses labels from left to right. Overall, one direction had to be chosen, and I went with the simplest. This can be fixed by flipping the address bits. ROMs having this fix already marked with an "f".

Bill of Materials (BOM)

Below is a list of materials needed to assemble a complete system. Please note that the links and prices (scroll to the right to see them; as of March 3rd, 2024) will not be updated in the future and should only be used as a reference for locating the correct items.

NOTE: Links and alternatives are provided to assist you in finding the necessary components. I cannot guarantee the complete accuracy or reliability of all these links and alternatives. Please check it for yourself!

PCB REFERENCEQTYVALUECOMMENTEACHTOTALSOURCE LINK
RN114.7k Ohm6 resistor network with 7-pins, bussed resistors0.50.5Mouser
U12Source Link is for a rather expensive version of a machined straight male pin header with 40-pins which can be broken into smaller pieces to server for both. There are cheaper ones, but the link is used for future reference.1.01.0Mouser
U212x64-2x512Examples are 23128, 23256, 2764, 27128, 27256, 27512, 2864, 28256 and all other variations such as 27C256 or AT28C64B5.55.5Mouser
J11-Optional. Could be used for right-angle jumpers or attaching ribbon cable to move switch towards more accessible place.1.021.02Mouser
J21-Optional. Adding the ability to switch character sets.0.270.27Mouser
1Low-profileOptional. Adding the ability to switch character sets.0.670.67Mouser

RetroStack Libraries

To work with this KiCAD project, you'll need the RetroStack libraries for KiCAD. Please follow this link to access and install these libraries.

Support this Project

RetroStack is passionate about exploring and preserving the legacy of older computer systems. My work involves creating detailed documentation and videos to share the knowledge. I am also dedicated to reviving these classic systems by reimplementing them and offering replacement parts at no cost. If you're keen on supporting this unique project, I invite you to visit my Patreon page. Your support would be immensely valuable and greatly appreciated!

License

This project is licensed under the MIT License - see the LICENSE file for details.

Parts

11
QtyValueFootprintReferences
6SolderJumper_2_OpenRetroStackLibrary:SolderJumper_2_Open_RoundedPadJP1, JP2, JP3, JP4, JP5, JP6
127512Package_DIP:DIP-28_W15.24mmU2
1Conn_02x05_Odd_EvenConnector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_VerticalJ1
1Conn_02x06_Odd_EvenRetroStackLibrary:DIPJumper_6J2
1Conn_02x09_Counter_ClockwisePackage_DIP:DIP-18_W7.62mmU1
1R_Network06Resistor_THT:R_Array_SIP7RN1

Similar boards

  • 2 layers60 × 30 mmController, the printed circuit board in 3D

    Controller

    google/mozc-devices

    Circuit diagrams and firmware source code for Gboard DIY keyboards

    11 parts3kApache-2.0
  • 2 layers103 × 30.5 mmTS Front Endcap, the printed circuit board in 3D

    TS Front Endcap

    EEVengers/ThunderScope

    ThunderScope GitHub Repo

    11 parts1.3kMIT
  • 2 layers26 × 30 mmExpansion Card, the printed circuit board in 3D

    Expansion Card

    FrameworkComputer/ExpansionCards

    Reference designs and documentation to create Expansion Cards for the Framework Laptop

    11 parts1.1kCC-BY-4.0
  • 2 layers53.9 × 23.2 mmBuffer, the printed circuit board in 3D

    Buffer

    hoglet67/RGBtoHDMI

    Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

    11 parts1kGPL-3.0
  • 2 layers10 × 20 mm2 connector Sensor Board, the printed circuit board in 3D

    2 connector Sensor Board

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    11 parts915
  • 2 layersFet module, the printed circuit board in 3D

    Fet module

    ByteWelder/Decktility

    A handheld PC

    11 parts855CC-BY-SA-4.0
  • 2 layers47 × 33 mmSevensegment led display module, the printed circuit board in 3D

    Sevensegment led display module

    tardate/LittleArduinoProjects

    a collection of "Little Electronic & Arduino Projects", most involving electronics or an Arduino in one way or another!

    11 parts803MIT
  • 2 layers42.5 × 36.8 mmDevboard, the printed circuit board in 3D

    Devboard

    basilfx/TRADFRI-Hacking

    Hacking IKEA TRÅDFRI products, such as light bulbs, window blinds and other accessories.

    11 parts743CC-BY-4.0

Questions

How big is the MCM776x Character Generator Adapter PCB?

It measures 18.3 × 51.2 mm and has 2 copper layers, 1.6 mm thick.

What parts does the MCM776x Character Generator Adapter use?

11 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the MCM776x Character Generator Adapter KiCad files?

From the RetroStack/MCM776x_CharGen_Adapter repository on GitHub, at the commit this page was made from: the board is KiCAD/MCM776x_Character_Generator_Adapter.kicad_pcb and its schematic KiCAD/MCM776x_Character_Generator_Adapter.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the MCM776x Character Generator Adapter design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).