Wiznet makers

irina

Published January 11, 2026 ©

139 UCC

5 WCC

101 VAR

0 Contests

0 Followers

0 Following

Original Link

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.

COMPONENTS
PROJECT DESCRIPTION

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

(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) 위주로 구성되었습니다.

  • 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.

🧠 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.

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.

Documents
Comments Write