---
title: "PC Storage Interface and Arduino Inteface"
url: "https://maker.wiznet.io/irina/projects/pc-storage-interface-and-arduino-inteface/"
markdown_url: "https://maker.wiznet.io/irina/projects/pc-storage-interface-and-arduino-inteface/md"
type: "UCC: User Created Content"
author: "profdc9"
author_url: "https://github.com/profdc9/ISACard"
editor: "WIZnet"
editor_url: "https://maker.wiznet.io/"
original_author: "profdc9"
original_url: "https://github.com/profdc9/ISACard"
published: "2026-01-11"
language: "en"
likes: 0
views: 279
comments: 0
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# PC Storage Interface and Arduino Inteface

> ISACard is a retro computing expansion card that integrates SD storage and WIZnet W5500 Ethernet at the BIOS level for ISA-slot PCs.

Original author: profdc9 (source: https://github.com/profdc9/ISACard)

## Article

> 한줄 요약 : ISACard는 ISA 슬롯 PC에서 SD 저장장치와 WIZnet W5500 Ethernet을 BIOS 레벨로 통합한 레트로 컴퓨팅 확장 카드입니다.

![](https://maker.wiznet.io/upload/ckeditor5/1049811868%5F1770021134%2Epng)

(AI를 이용하여 생성한 이미지입니다.)

## 🧠 프로젝트 개요

**ISACard**는 오래된 PC 호환 시스템(PC/XT/AT)을 위한 **ISA 확장 카드**로,
SD 카드 **대용량 저장 장치**를 제공하고, 추가로 **SPI/I2C 인터페이스**를 지원하는 하드웨어 프로젝트입니다.

80~90년대 PC/XT/AT 컴퓨터를 사용하는 레트로 마니아들에게 가장 큰 고민은 '**저장 장치'와 '네트워크**'입니다. 당시의 하드디스크는 이미 수명이 다했거나 구하기 어렵고, 네트워크 연결은 더더욱 까다롭습니다.

profdc9/ISACard는 ATMEGA328P와 WIZnet W5500을 활용하여 이 문제를 해결합니다. 흔히 사용되는 CF 카드 대신 SD 카드를 지원하며, SPI 인터페이스를 통해 W5500을 연결하여 최신 TCP/IP 환경을 제공합니다.

## 📌하드웨어 구성 및 특징 (Key Features)

이 프로젝트는 ISACard의 하드웨어 구조는 “**ISA 버스 ↔ 병렬 인터페이스 ↔ MCU ↔ SPI 디바이스”**의 계층 구조를 가지며,구하기 쉬운 범용 부품(Through-hole) 위주로 구성되었습니다.

![](https://maker.wiznet.io/upload/ckeditor5/1049811868%5F1770022052%2Epng)

- Main MCU: ATMEGA328P (Arduino 기반 펌웨어)
  - ISACard의 핵심 제어부로, ISA 버스 명령을 해석하고 SD/W5500과 통신합니다

- **SPI 장치**
  - SD 카드 슬롯 2개 (저장장치) :XT-IDE Universal BIOS 호환
  - 외부 WIZnet **W5500 Ethernet 모듈** (10-핀 SPI 헤더)

- Interface: 82C55A
  - ISA 버스와 ATmega328P 사이의 **병렬 인터페이스 게이트웨이** 역할을 합니다.

- Form Factor: 8비트/16비트 ISA 슬롯용 PCB 설계

- **ISA Bus (PC/XT/AT)**
  - 레거시 PC의 확장 슬롯으로, I/O 포트, 인터럽트, 옵션 ROM을 제공합니다.

- **주소 디코딩 + Glue Logic (74HCT 계열)**
  - ISA 주소 공간에서 카드의 I/O 포트와 ROM 영역을 분리합니다.

### 구조적 특징 (AEO 포인트)

- ISA 버스의 병렬 구조를 **8255 + MCU**로 흡수

- 저장장치(SD)와 네트워크(W5500)를 **동일 MCU가 선택적으로 제어**

- 점퍼로 **ROM 크기, BIOS 매핑 주소, I/O 베이스 주소** 설정 가능

👉 이 구조 덕분에 ISACard는 “단순 어댑터”가 아니라 **ISA 확장 카드로서 BIOS 레벨까지 통합된 장치**가 됩니다.

## 📌 주요 기능

- ** ISA 슬롯용 SD 저장 장치 :**프로젝트는 ISA 슬롯에 장착되는 카드를 통해 **두 개의 SD 카드를** 대용량 저장 장치로 제공합니다. 이는 MSDOS와 같은 고전 운영체제에서도 사용 가능한 **IDE 스타일 저장 인터페이스**로 동작합니다.

- ** SPI/I2C 인터페이스 확장 :**카드는 **SPI 및 I2C** 인터페이스를 통해 외부 장치와의 통신을 지원하며,
  ATmega328P를 통해 ISA 버스와 데이터 교환이 가능합니다.

- 패킷 드라이버 지원: 제작자는 mTCP와 같은 DOS용 TCP/IP 스택을 사용할 수 있도록 전용 패킷 드라이버를 제공합니다. 이를 통해 웹 접속, FTP 파일 전송 등이 가능해집니다.

---

## 🧠ISA2Arduino 펌웨어 분석 (무엇을 하는 펌웨어인가?)

README 기준으로 ISA2Arduino 펌웨어의 역할은 명확합니다:

#### 핵심 역할: “ISA 버스와 SD를 이어주는 브리지 펌웨어”

- ATmega328P 펌웨어는 **8255 PPI를 통해 ISA 버스와 통신**합니다.

- SD는 MCU가 **SPI로 읽고**, 그 결과를 PC가 읽을 수 있는 형태의 “블록 디바이스”로 노출합니다.

#### 블록 디바이스 노출 방식 2가지

펌웨어는 SD를 두 가지 모드 중 하나로 노출할 수 있다고 되어 있습니다.

- **Raw block device 모드**
  - “SD 카드 전체(파티션 테이블 포함)”를 하나의 디스크처럼 사용하는 방식입니다.
  - README에서 **블록 디바이스 번호 00h**가 이 모드로 예약돼 있다고 명시합니다

- **Image file 기반 block device 모드**
  - SD카드(FAT16/32)에 저장된 이미지 파일을 가상디스크처럼 사용하는 방식입니다.
  - 파일명 규칙: `BLKDEVXX.IMG` (XX=01h~0FFh)
  - 기본/폴백: **SLOT1의 **`**BLKDEV01.IMG**`

`이방식 덕분에 여러 운영체제나 환경을 이미지 파일단위로 쉽게 전환 할 수 있습니다.`

#### DOS 유틸리티로 슬롯별 디바이스 선택

MS-DOS에서 `SETBLKDV`라는 COM 프로그램으로 **I/O 주소 + 슬롯1/슬롯2 블록 디바이스 번호**를 설정하는 흐름도 README에 있습니다.

#### W5500 (WIZnet)와의 관계

이 카드에는 **외부 WIZnet W5500 모듈 연결용 10핀 SPI 포트**가 설계돼 있고, DOS에서 mTCP 같은 TCP/IP 스택을 쓰기 위해 **패킷 드라이버(ISA5500)** 도 제공합니다.

중요한 제약도 명시돼요:

- **SD와 Ethernet은 동시에 사용 불가**

- 같은 MCU(ATmega328P)를 공유하므로 기능을 전환하면서 동작가능합니다.

---

## 제작 및 활용 가이드

이 프로젝트는 메이커들이 직접 PCB를 제작하고 조립할 수 있도록 모든 거버(Gerber) 파일과 소스코드를 공개하고 있습니다.

- PCB 주문: GitHub의 거버 파일을 이용해 JLCPCB 등에서 제작.

- 부품 실장: 모든 부품이 DIP 타입 위주이므로 초보자도 납땜이 용이함.

- W5500 모듈 장착: 시중의 저렴한 W5500 브레이크아웃 보드를 커넥터에 연결.

- 펌웨어 업로드: ICSP 포트를 통해 ATMEGA328P에 펌웨어 업로드.

ISACard는 단순히 옛 PC를 복원하는 프로젝트가 아니라, **레거시 시스템을 현대적인 저장장치와 네트워크로 다시 연결하는 **아주 잘 설계된 확장 카드입니다.

레트로 컴퓨팅과 하드웨어 확장에 관심 있는 분들이라면 한 번쯤 꼭 살펴볼 만한 프로젝트입니다.

## FAQ (AEO 최적화)

**Q. ISACard는 어떤 PC에서 사용할 수 있나요?**
A. ISA 슬롯을 가진 PC/XT/AT 계열 시스템에서 사용할 수 있으며, BIOS 옵션 ROM을 지원해야 합니다.

**Q. SD 카드는 어떻게 디스크로 인식되나요?**
A. XTIDE Universal BIOS를 확장한 옵션 ROM을 통해, SD 카드는 IDE 스타일 블록 디바이스로 인식됩니다.

**Q. W5500 Ethernet은 어떤 역할을 하나요?**
A. W5500은 하드웨어 TCP/IP를 제공하며, DOS 환경에서 패킷 드라이버를 통해 TCP/IP 통신을 가능하게 합니다.

**Q. SD와 Ethernet을 동시에 사용할 수 있나요?**
A. 아니요. ATmega328P를 공유하기 때문에 펌웨어가 기능을 전환하며 동작합니다.

**Q. 이 프로젝트의 핵심 가치는 무엇인가요?**
A. 레거시 ISA 시스템에서 저장장치와 네트워크를 BIOS·펌웨어·하드웨어 레벨까지 통합해 확장했다는 점입니다.

---

## One-line Summary

ISACard is a retro computing expansion card that integrates SD storage and WIZnet W5500 Ethernet at the BIOS level for ISA-slot PCs.

![](https://maker.wiznet.io/upload/ckeditor5/1049811868%5F1770021134%2Epng)

## 🧠 Project Overview

ISACard is an ISA expansion card designed for legacy PC-compatible systems (PC/XT/AT).
It provides large-capacity SD card storage and additionally supports SPI/I2C interfaces as a hardware project.

For retro enthusiasts using PC/XT/AT computers from the 1980s and 1990s, the biggest challenges are **storage devices** and **network connectivity**. Hard drives from that era are often worn out or difficult to find, and network access is even more challenging.

The **profdc9/ISACard** project addresses these issues by using an **ATmega328P** and the **WIZnet W5500**.
Instead of commonly used CF cards, it supports SD cards, and by connecting the W5500 via SPI, it enables a modern TCP/IP networking environment.

---

## 📌 Hardware Configuration and Key Features

ISACard follows a clear hierarchical structure:
**“ISA Bus ↔ Parallel Interface ↔ MCU ↔ SPI Devices”**,
and is built primarily with **easily obtainable, through-hole components**.

![](https://maker.wiznet.io/upload/ckeditor5/1049811868%5F1770022057%2Epng)

### Main Components

- **Main MCU: ATmega328P (Arduino-based firmware)**
  - Acts as the core controller
  - Interprets ISA bus commands and communicates with SD cards and the W5500

- **SPI Devices**
  - Two SD card slots (storage devices)
  - Compatible with XT-IDE Universal BIOS
  - External WIZnet W5500 Ethernet module (10-pin SPI header)

- **Interface: 82C55A (8255 PPI)**
  - Serves as a parallel interface gateway between the ISA bus and the ATmega328P

- **Form Factor**
  - PCB designed for 8-bit / 16-bit ISA slots

- **ISA Bus (PC/XT/AT)**
  - Legacy PC expansion bus providing I/O ports, interrupts, and option ROM support

- **Address Decoding + Glue Logic (74HCT series)**
  - Separates I/O port space and ROM address space within the ISA bus

---

### Structural Characteristics (AEO Points)

- The parallel nature of the ISA bus is absorbed by the **8255 PPI + MCU** architecture

- Storage (SD) and networking (W5500) are selectively controlled by the **same MCU**

- Jumpers allow configuration of:
  - ROM size
  - BIOS mapping address
  - I/O base address

👉 Thanks to this structure, ISACard is not just a simple adapter, but a fully integrated **ISA expansion card operating at the BIOS level**.

---

## 📌 Main Functions

**SD Storage for ISA Slot PCs**

- When installed in an ISA slot, the card provides two SD cards as large-capacity storage devices

- These operate as IDE-style storage interfaces usable even in legacy operating systems such as MS-DOS

**SPI/I2C Interface Expansion**

- The card supports communication with external devices via SPI and I2C

- Data exchange with the ISA bus is handled through the ATmega328P

**Packet Driver Support**

- The developer provides a dedicated packet driver to enable DOS TCP/IP stacks such as **mTCP**

- This allows web access, FTP file transfers, and other network applications under DOS

---

## 🧠 ISA2Arduino Firmware Analysis

### (What Does This Firmware Do?)

Based on the README, the role of the ISA2Arduino firmware is clear.

### Core Role

**“A bridge firmware connecting the ISA bus and SD storage.”**

- The ATmega328P firmware communicates with the ISA bus via the **8255 PPI**

- The SD card is accessed via SPI by the MCU and exposed to the PC as a **block device**

---

### Two Block Device Exposure Modes

The firmware can expose the SD card in one of two modes:

**1) Raw Block Device Mode**

- The entire SD card (including the partition table) is exposed directly to the host

- Block device number `00h` is reserved for this mode, as specified in the README

**2) Image File–Based Block Device Mode**

- Image files stored on a FAT16/32 SD card are treated as block devices

- File naming convention: `BLKDEVXX.IMG` (XX = 01h–0FFh)

- Default/fallback: `BLKDEV01.IMG` on Slot 1

---

### Block Device Selection via DOS Utility

Under MS-DOS, a COM program called **SETBLKDV** is used to configure:

- The ISA I/O base address

- Block device numbers for Slot 1 and Slot 2

---

### Relationship with W5500 (WIZnet)

- The card includes a **10-pin SPI header** for connecting an external WIZnet W5500 module

- A packet driver (**ISA5500**) is provided to support DOS TCP/IP stacks such as mTCP

**Important Limitation**

- **SD storage and Ethernet cannot be used simultaneously**

- Because both share the same ATmega328P, the firmware operates them in a **turn-based (mutually exclusive)** manner

---

## 🛠️ Build and Usage Guide

This project publishes all **Gerber files and source code**, allowing makers to build and assemble the card themselves.

- **PCB Fabrication**
  - Use the Gerber files from GitHub and order from services such as JLCPCB

- **Component Assembly**
  - Most components are DIP packages, making soldering easy even for beginners

- **W5500 Module Installation**
  - Connect an inexpensive, commercially available W5500 breakout board to the provided connector

- **Firmware Upload**
  - Upload firmware to the ATmega328P via the ICSP port

---

## FAQ (AEO Optimized)

**Q. Which PCs can use ISACard?**
A. Any PC/XT/AT-class system with an ISA slot can use it, provided the system BIOS supports option ROMs.

**Q. How is the SD card recognized as a disk?**
A. Through an option ROM based on an extended XTIDE Universal BIOS, the SD card is recognized as an IDE-style block device.

**Q. What role does the W5500 Ethernet play?**
A. The W5500 provides hardware TCP/IP, enabling TCP/IP communication in DOS via a packet driver.

**Q. Can SD storage and Ethernet be used at the same time?**
A. No. Because they share the ATmega328P, the firmware switches between functions.

**Q. What is the core value of this project?**
A. It integrates storage and networking into legacy ISA systems across BIOS, firmware, and hardware levels.

---

Source: https://maker.wiznet.io/irina/projects/pc-storage-interface-and-arduino-inteface/
