Skip to the content
4 layers304.8 × 215.9 mmMad5160, the printed circuit board in 3D

A clone of IBM 5160 motherboard

Size
304.8 × 215.9 mm
Copper layers
4
Thickness
1.6 mm
Parts
196
Nets
406
Pads
2,467
Tracks, vias
15,644, 942
Pours
12
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
16 Apr 2024
Updated
21 May 2026

Overview

Mad5160 is an open-source printed circuit board by madcatse, from the madcatse/mad5160 repository on GitHub, published under the MIT licence. It is a 4-layer board of 304.8 × 215.9 mm with 196 parts on 406 nets, routed with 15,644 tracks and 942 vias.

It is built around the SN75477P, 74S138PC and 74LS04PC. Its parts include 90 ICs, 68 capacitors, 11 connectors, 5 resistors and 1 switch.

Main components

3

README

README.md

Добро пожаловать в моqй проект по созданию реплики материнской платы IBM 5160, или как её называют - PC XT.

Предыстория

Как-то вечером, глядя видеоролик Adrain Digital Basement о ремонте оригинальной IBM CGA видеокарты, обратил внимание что в ролике он демонстрировал схему всей видеокарты, которую кто-то выполнил в KiCAD. И упомянул, что схема иначально взята из оригинальной документации самой IBM. У меня сразу возникла мысль - а могу ли я сделать реплику такой видеокарты, раз уже проверенная схема есть в наличии? Быстрый поиск показал что да, такая схема доступна, а также что кто-то уже сделал реплику CGA видеокарты (проект CGA Redux). Глядя на разведенную карточку, в голову проникла мысль: если есть схема видеокарты от IBM, то наверное есть схема и от материнской платы? И да - IBM 5160 Technical Reference от Апреля 1983 года действительно содержит схему на 11 листах всей материнской платы. Ну а если есть схема - то насколько сложным будет взять её и развести? Сделать реплику. Так появился данный проект.

изображение

Начало работ и поиск подводных камней

Вооружившись документацией из Technical Reference я принялся за работу. Нашел и скачал всю доступную документацию на 5160, разобрал, и проанализировал. Нашел фотографии материнской платы (спасибо retroweb), с которых бралась визуальная информация по компонентам.

изображение

Потом выписал список всех компонентов на плате, с которыми предстояло работать. В этот список попали:

*центральный процессор и микросхемы, которые составляли его обвязку (чип сет, понимаете?)

*микросхемы памяти, которыми набиралась оперативная память (от 16 килобайт до 256 килобайт)

*микросхемы логики, по большей части представленные 74LS и 74S сериями

*микросхемы ПЗУ, по счастью две обычные 27С256 EPROM

*двойной периферийный драйвер SN75477P

*PAL-чип U44

*мимикрирующие под микросхемы резисторные сборки в DIP-корпусах (RN1-RN5)

*две временные задержки TD1 и TD2

*сравнительно небольшое разнообразие резисторов и конденсаторов, а также кварцевый резонатор

*стандартные 62-пиновые слоты, DIN5-коннектор под клавиатуру и Molex коннектор питания.

С чем не было проблем

Меньше всего проблем принес центральный процессор и его обвязка: Центральный процессор 8088 (совесткий аналог КР1810ВМ88) Математический сопроцессор 8087 (чудовищно редкий совесткий аналог КР1810ВМ88) Программируемый DMA контроллер 8237A (совесткий аналог КР1810ВТ37А) Программируемый таймер 8253 (совесткий аналог КР580ВИ53Д) Программируемый интерфейс периферийных устройств 8255A (совесткий аналог КР580ВВ55А) Программируемый контроллер прерываний 8259A (совесткий аналог КР1810ВН59А) Генератор частоты 8284A (совесткий аналог КР1810ГФ84А) Контроллер шины M8288 (совесткий аналог КР1810ВГ88) Все эти микросхемы сравнительно легкодоступны и их приобретение и проверка не составила никакого труда.

Микросхемы памяти также представляют собой совершенно стандартные 4164/41256 и также не вызывают проблем с их приобретением и проверкой.

То же самое касается и микросхем логики - 74 серия и её советские клоны достаточно распространены, легко приобретаются и проверяются. Неприятность в общем разнообразии микросхем. Для сборки Вам потребуются: 7407.

74LS00, 74LS04, 74LS04, 74LS10, 74LS20, 74LS27, 74LS32, 74LS138, 74LS158, 74LS175, 74LS243, 74LS244, 74LS245, 74LS322, 74LS373, 74LS670.

74S00, 74S08, 74S74, 74S280.

Часть совершенно свободно находится на aliexpress, часть есть там же, но поддельная, часть найти будет сложно, особенно S-чипы. Но это реализуемо.

Двойной периферийный драйвер SN75477P не относится к 74ой серии, но также легко доступен.

Пассивные компоненты, кварцевый резонатор, подстроеный конденсатор, слоты ISA и коннектор DIN5 для подключения клавиатуры также совершенно стандартные.

Проблемы

Все это касалось комплектующих, с которыми никаких принципиальных проблем не было. К сожалению, это не все компоненты на плате. Есть часть, с которыми проблемы были, и которые пришлось решать.

PAL 82S129N (U44)

Злосчастная U44, на месте которой располагается PAL-чип 82S129N, программируемая логическая микросхема декодера памяти.

изображение

Обширный поиск показал отсутствие легкодоступного дампа содержимого данной микросхемы. Однако с давных времен (декабрь 1989 года!) существует мод, 1megXT, который позволяет поставить на старые 5160-материснкие платы до 1 мегабайта памяти, и заключается в замене вышеуказанной 82S129N на GAL16V8 с хорошо задокументированной зашивкой, плюс установке одной дополнительной микросхемы. Установка такого мода мало того что решает проблему с отсутствием зашивки, так ещё и позволяет учетвертить доступный объем оперативной памяти! Хоть я и хотел поиграться с PC с 16кб памяти (минимально возмомжный объем), но как вышло так вышло. Для реализации этого мода Вам потребуется одна микросхема GAL16V8 и зашивка для неё. Зашивка с уравнениями присутствует в каталоге firmware\GAL16V8 Там же есть ссылка на оригинальный тред на vcfed. Микросхема GAL16V8 длиннее, чем оригинальная 82S129N, поэтому установить её напрямую не получится. Установите панель на место U44, после чего посадите GAL16V8 так чтобы в панель вошли первый и последний вины, а "хвост" остался висеть в воздухе. Поднимите пины, которые не попали в сокет, и поставьте перемычку между 8 и 10 пинами (это соединит пин земли на GAL16 и пин земли сокета).

изображение

Обратите внимание, что в моем случае я использовал не свою замену резистороной сборки, а оригинальную резисторную сборку. Так как плата была тестовая, то резисторая сборка ставилась в панель, и она будет мешать моду, не позволяя поставить его по высоте. Надо либо паять плату сборки под основание платы, без панели, либо поднимать микросхему мода несколькими панельками. Если делать без панельки под резисторную сборку, места должно хватить. После этого мод готов к работе, останется установить джампер на E2 и на блоке SW2 третьим и четвертым переключателем задать необходимый объем оперативной памяти (подробнее см. документацию на мод в файле \firmware\1megXT.txt)

Резисторные сборки

IBM установил на плате пять резисторных сборок в DIP-16 корпусах. Это:

RN1, RN5 - 15 резисторов по 4.7 кОм

изображение

RN3, RN4 - 8 резисторов по 30 Ом

изображение

RN2 - 15 резисторов по 8.2 кОм

изображение

Частично такие сборки можно купить, но цены на них очень и очень негуманные. Некоторые (8 по 30) имеют неходовой номинал и представляют собой проблему. Чтобы не заморачиваться с поиском такой экзотики я создал проект "RNDip16", располагающийся в папке \supporting_prj\RNDip16 Проект представляет собой две небольшие платы, по габаритам схожими с футпринтом микросхемы в корпусе DIP-16, на которые можно установить 8 либо 15 SMD-резисторов любого номинала, в корпусе 0805.

изображение

После пайки резисторов следует запаять пины ножек и замена резисторной сборки готова.

изображение

Установка такой замены допускается в сокет, либо напрямую запайкой в плату. Gerber-файлы лежат в папке \supporting_prj\RNDip16\gerbers

Линии временной задержки TD1 и TD2

Довольно экзотические компоненты установлены под обозначениями TD1 и TD2. Данные компоненты обеспечивают контролируемую задержку сигнала и являются критичными для корректной работы компьютера. По счастью само IBM в документации от 1986ого года выбросил из схемы TD2, заменив её обычным резистором, убрав резисторы R4 и R5. Но вот TD1 осталась, как и проблемы с ней. Часто на её месте стоят компоненты от BELFUSE 0447-0100-98, либо SPRAGUE 61Z14A100. Это линия задержки на 5 выходов, каждый из которых добавляет 20нс к времени выхода сигнала. На ebay такие компоненты можно купить, однако у нас в настоящий момент это исключено.

изображение

Поиск показал что существуют современные вариации таких задержек - DS1100Z-100 в корпусе NSOIC-8. Я создал проект time_delay, расположенный по пути \supporting_prj\time_delay ,который представляет собой крошечную плату с габаритами исходной временной задержки, на которую необходимо напаять DS1100Z-100 и пины, после чего данный компонент на 100% заменяет исходную временную задержку.

изображение

изображение

Gerber-файлы лежат в папке \supporting_prj\time_delay\Gerbers

Коннектор питания P8/P9

Старый-добрый AT-коннектор питания (что, получается, неверно, так как у нас XT и этот тип коннектора должен тогда называться XT-коннектор).

изображение

Его можно взять с донорской материнской платы, но я решил поставить современный вариант. Molex 26604060, имеет такие же габариты, но пины квадратной, а не плоской формы.

изображение

изображение

Однако типовой AT-блок питания подключается без проблем, и нет нужды искать донора.

BIOS

Микросхемы биоса используются совершенно стандартные, 27C256. В одной находится сам биос, в другой - ром с IBM BASIC. Все оригинальные BIOS есть здесь: https://www.minuszerodegrees.net/bios/bios.htm Также можно использовать различные сторонние BIOS, в частности биос от TurboXT, доступный по пути firmware\turboxt\turboxt.bin

Ошибки в схеме

Первая ревизия платы (версия 0.1) содержала в себе ошибку, связанную с опечаткой в оригинальной IBM документации. Для сравнения, фрагмент схемы 1983 года:

изображение

Тот же участок в схеме от 1986 года:

изображение

Из-за этого линия проверки четности на ISA-слоте была подтянута на +5 постоянно через резистор, и система ВСЕГДА при старте определяла ошибку четности. Это единственный фикс, который потребовалось сделать в схеме после того как был изготовлен, собран и испытан первый образец.

Печатная плата

Печатную плату я разводил используя в качестве ориентира скан платы, любезно предоставленный пользователем jafir с форума vcfed, а также остальные референсные фото. Так как оригинальная плата четырехслойная, я не имел на руках оригинальной платы, и тем более не мог сделать послойную декомпозицию платы с целью анализа проводников на внутренних слоях платы, трассировка всех проводников выполнена с нуля. Сигнальные слои - F.Cu и B.Cu. Слой In1.Cu - +5В, слой In2.Cu - земля. Линии +12В, -12В и -5В проведены по сигнальным слоям. Контур платы, координаты посадочных отверстий, некоторые посадочные места компонентов (трехвыводные конденсаторы, пленочный конденсатор, подстроечный конденсатор) взяты из открытого проекта-реплики IBM PC 5150 (PC-Retro, MTM Scientific)

Изготовление и сборка

Четырехслойная печатная плата без каких либо особенностей. Изготовление возможно силами китайских производителей. Gerbar-файлы для изготовления находятся по пути \gerbers

изображение

Благодарности

Выражаю огромное спасибо за идею, помощь в проектировании и отладке: Adrinan Black с канала Adrian Drigital Basement за идею, а также диагностический ром для памяти, который помог локализовать проблему с Parity

jafir с форума vcfed за качественный скан материнской платы

modem7 с форума vcfed за помощь в локализации проблемы и идеи по исправлению.

Контакты

Связаться со мной можно в телеграме, на моем небольшом канале: https://t.me/madcatse

Parts

196
QtyValueFootprintReferences
430.047uFmad5150:cap_unipolarC17, C18, C20, C21, C22, C23, C24, C25, C26, C27, C29, C30, C31, C32, C33, C34 +27
3664K x1 bit RAM 4164mad5150:Ram_socket_ICU30, U31, U32, U33, U34, U35, U36, U37, U38, U46, U47, U48, U49, U50, U51, U52 +20
1710uF 25Vmad5150:cap_tantalum_posC3, C10, C11, C12, C13, C14, C15, C16, C19, C28, C37, C46, C54, C56, C59, C61 +1
8HOLE1mad5150:HOLEH1, H2, H3, H5, H6, H7, H8, H9
8ISA Bus connectormad5150:isa_edge_slotJ1, J2, J3, J4, J5, J6, J7, J8
6LS244mad5150:DIP-20_W7.62mmU6, U12, U14, U16, U17, U41
447pFmad5150:cap_unipolarC2, C4, C7, C9
3LS138mad5150:DIP-16_W7.62mmU42, U43, U45
3LS245mad5150:DIP-20_W7.62mmU2, U9, U15
3LS373mad5150:DIP-20_W7.62mmU5, U7, U11
210uF 25Vmad5150:cap_tantalum_negC58, C68
227C256 (32KX8)mad5150:DIP-28_W15.24mmU18, U19
230mad5150:DIP-16_W7.62mmRN3, RN4
24.7Kmad5150:DIP-16_W7.62mmRN1, RN5
2510mad5150:resistorR1, R2
274LS74ANmad5150:DIP-14_W7.62mmU73, U86
2LS04_U71mad5150:DIP-14_W7.62mmU71, U89
2LS158_U39mad5150:DIP-16_W7.62mmU39, U40
2LS175mad5150:DIP-16_W7.62mmU21, U88
2LS32_U58mad5150:DIP-14_W7.62mmU58, U90
110nFmad5150:CP8C53
114.31818MHzmad5150:Crystal_HC49-U_HorizontalY1
1180mad5150:resistorR5
1220mad5150:resistorR4
124S10mad5150:DIP-16_W7.62mmU44
133mad5150:resistorR6
15-30pfmad5150:VRC1
17407_U68mad5150:DIP-14_W7.62mmU68
174LS04mad5150:DIP-14_W7.62mmU22
174S138mad5150:DIP-16_W7.62mmU56
174S74Nmad5150:DIP-14_W7.62mmU70
18.2Kmad5150:DIP-16_W7.62mmRN2
18087mad5150:DIP-40_W15.24mm_SocketU4
18088mad5150:DIP-40_W15.24mmU3
18237A-5_U28mad5150:DIP-40_W15.24mmU28
18253-5mad5150:DIP-24_W15.24mmU26
18255A-5mad5150:DIP-40_W15.24mmU29
18259Amad5150:DIP-28_W15.24mmU25
18284Amad5150:DIP-18_W7.62mmU1
18288mad5150:DIP-20_W7.62mmU8
1AT POWER CONNECTORmad5150:AT_power_connectorJ10
1DIP_SWITCHmad5150:DIP_SWITCHSW1
1E1_Jumper_blockmad5150:PinHeader_2x01_P2.54mm_VerticalE1
1E2_Jumper_blockmad5150:E4E4
1E2_Jumper_blockmad5150:PinHeader_2x02_P2.54mm_VerticalE2
1E3 Jumper Blockmad5150:PinHeader_2x04_P2.54mm_VerticalE3
1E5_Jumper_Blockmad5150:PinHeader_1x03_P2.54mm_VerticalPB3
1KEYBOARDmad5150:KeyboardJ9
1LS00_U24mad5150:DIP-14_W7.62mmU24
1LS00_U74mad5150:DIP-14_W7.62mmU74
1LS10_U72mad5150:DIP-14_W7.62mmU72
1LS158_U39mad5150:DIP-16_W7.62mm_SocketU84
1LS20_U57mad5150:DIP-14_W7.62mmU57
1LS243_U13mad5150:DIP-14_W7.62mmU13
1LS27_U23mad5150:DIP-14_W7.62mmU23
1LS322_U27mad5150:DIP-20_W7.62mmU27
1LS670_U10mad5150:DIP-16_W7.62mmU10
1S00_U69mad5150:DIP-14_W7.62mmU69
1S08_U55mad5150:DIP-14_W7.62mmU55
1S08_U87mad5150:DIP-14_W7.62mmU87
1S280_U20mad5150:DIP-14_W7.62mmU20
1SN75477mad5150:DIP-8_W7.62mmU85
1SPEAKERmad5150:PinHeader_1x04_P2.54mm_VerticalP3
1TTLDL-20mad5150:time_delayTD1
1~mad5150:TD2TD2

More from madcatse/mad5160

2
  • 2 layers65.5 × 21 mmRndip16, the printed circuit board in 3D

    Rndip16

    madcatse/mad5160

    A clone of IBM 5160 motherboard

    74 parts5MIT
  • 2 layers10.3 × 18.9 mmTime delay, the printed circuit board in 3D

    Time delay

    madcatse/mad5160

    A clone of IBM 5160 motherboard

    2 parts5MIT

Similar boards

  • 4 layers304.8 × 215.9 mm64 256KB SYSTEM BOARD, the printed circuit board in 3D

    64 256KB SYSTEM BOARD

    kev-ju/PC-Retro-MTM

    Modern KiCad version of the IBM 5150 system board originally created by MTM Scientific, Inc.

    197 parts4
  • 2 layersCompaqportableIII, the printed circuit board in 3D

    CompaqportableIII

    raymondh2/CompaqPortableIII

    Current PCB Memory Expansion board layout is untested. The backplane for the expansion cards is tested and working.

    123 parts17
  • 2 layers414.3 × 266.7 mmTelcon Ambassador, the printed circuit board in 3D

    Telcon Ambassador

    btb/Telcon-Ambassador

    The Telcon Ambassador was a series of portable terminals by Telcon Industries (who later created the Zorba portable computer).

    155 parts
  • 2 layers171.2 × 72.9 mmAmiga gfxcard old, the printed circuit board in 3D

    Amiga gfxcard old

    mntmn/amiga2000-gfxcard

    MNT VA2000, an Open Source Amiga 2/3/4000 Graphics Card (Zorro II/III), written in Verilog

    34 parts1k
  • 2 layers196.3 × 118.7 mmMotherboard, the printed circuit board in 3D

    Motherboard

    Redherring32/OpenTendo

    An Open-Source HardWare (OSHW) recreation of the original 1985 front-loading NES Motherboard

    100 parts860
  • 2 layers49.6 × 78.3 mmOdyssey, the printed circuit board in 3D

    Odyssey

    jotego/jtcores

    FPGA cores compatible with multiple arcade game machines and KiCAD schematics of arcade games. Working on MiSTer FPGA/Analogue Pocket

    24 parts346GPL-3.0
  • 2 layers237.5 × 102.9 mmInstruction, the printed circuit board in 3D

    Instruction

    jes/scamp-cpu

    A homebrew 16-bit CPU with a homebrew Unix-like-ish operating system.

    112 parts301Unlicense
  • 2 layers182.9 × 172.7 mmMulti, the printed circuit board in 3D

    Multi

    homebrew8088/8088-PC-Compatible

    8088 PC XT Compatible

    120 parts238GPL-3.0

Questions

How big is the Mad5160 PCB?

It measures 304.8 × 215.9 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Mad5160 use?

196 parts, built around the SN75477P, 74S138PC and 74LS04PC. 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 Mad5160 KiCad files?

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

Can I use the Mad5160 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).