산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

아두이노 기반 아마가 플로피 디스크 리더 - 저렴한 오픈소스 데이터 복구 솔루션

필요한 부품 및 준비물

부품 수량 비고
아두이노 우노 (또는 프로 미니) 1 ATmega328P 기반 보드
플로피 디스크 드라이브 (3.5인치, PC용) 1 구형 PC에서 적출 가능
IDE 플로피 케이블 (34핀) 1 드라이브 연결용
브레드보드 1 프로토타이핑용
점퍼 와이어 1세트 연결용
1kΩ 저항 1 풀업용
브레드보드 전원 모듈 (5V/3.3V) 1 드라이브 5V 전원 공급용
SN74HCT14N 헥스 슈미트 트리거 (선택) 1 신호 정제용 (시도 6에서 사용)

소프트웨어 및 도구

프로젝트 배경 및 동기

저자(Rob Smith)는 어린 시절 아마가 500+로 프로그래밍을 시작했으며, 수십 장의 플로피 디스크에 소중한 데이터와 추억이 담겨 있었습니다. 하지만 작동하지 않는 하드웨어와 비싼 상용 솔루션(KryoFlux, Catweasel 등), 그리고 대부분 폐쇄 소스인 상황에서 직접 저렴하고 개방적인 복구 장치를 만들기로 결심했습니다.

기술적 도전과 해결 과정

아마가 플로피 디스크 포맷 이해

시도 1: 시프트 레지스터 병렬 변환 (실패)

두 개의 74HC594 시프트 레지스터로 8비트씩 병렬 변환하여 샘플링 주파수 1/8로 낮추려 시도. USART 2Mbps로 전송했으나 동기화 문제로 의미 있는 데이터 획득 실패.

시도 2: 인터럽트 기반 펄스 감지 (실패)

500kHz 타이머 인터럽트에서 펄스 감지 시도. digitalRead() 오버헤드와 ISR 진입/복귀 비용으로 타이밍 미준수. 포트 직접 접근으로도 부족.

시도 3: 하드웨어 카운터 활용 (돌파구)

ATmega328의 Timer0을 외부 펄스 카운터로 구성. 500kHz 타이머(Timer2) 오버플로 시 카운터 값 확인하여 펄스 유무 판별. 첫 펄스 감지 시 타이머 리셋으로 동기화 시작.

시도 4: 위상 고정 루프(PLL) 방식 동기화 (성공)

타이머 카운터 값을 펄스 감지 시점에 강제로 재설정하여 클럭을 신호에 동기화. 오실로스코프로 확인 결과 완벽한 동기화 달성. 하지만 체크섬 오류 발생.

시도 5: 네이키드 ISR로 지터 최소화 (개선)

INT0 외부 인터럽트에 ISR_NAKED 속성 적용, 어셈블리 레벨에서 5명령어(0.3125μs)로 타이머 재동기화 구현. 읽기 안정성 향상.

시도 6: 슈미트 트리거 추가 (보완)

SN74HCT14N으로 노이즈 제거 시도했으나 큰 차이 없음. 기존 방식 유지.

시도 7: MFM 디코딩 규칙 기반 오류 보정

MFM 디코딩 및 ADF 파일 생성

  1. 동기 워드 0x4489 (또는 0x2AAAAAAA44894489) 검색으로 섹터 시작 위치 찾기
  2. 헤더/데이터 필드 읽기 및 CRC 체크섬 검증
  3. 유효한 11섹터 모두 읽힐 때까지 트랙 재시도
  4. 섹터 순서대로 512바이트씩 기록하여 .ADF 파일 생성
  5. ADFOpus 등 에뮬레이터 도구로 검증

향후 계획 (V2 이후)

핵심 기술 포인트 요약

기술 요소 구현 방식
고속 샘플링 Timer0 외부 클럭 카운터 + Timer2 500kHz 기준 클럭
동기화 펄스 감지 시 Timer2 카운터 강제 리셋 (PLL 유사)
인터럽트 최적화 ISR_NAKED + 인라인 어셈블리로 5사이클 달성
데이터 전송 USART 2Mbps (FTDI 브레이크아웃 보드 활용)
오류 처리 체크섬 기반 재시도 + MFM 규칙 기반 소프트 보정

마치며

이 프로젝트는 레거시 미디어 보존을 위한 메이커의 열정과 저수준 하드웨어 제어 기술이 결합된 훌륭한 사례입니다. 아두이노라는 접근성 높은 플랫폼으로 전문 장비 수준의 플로피 디스크 읽기를 구현했으며, 모든 소스가 공개되어 있어 누구나 개선하고 확장할 수 있습니다. 레트로 컴퓨팅 애호가와 데이터 보존가에게 큰 가치를 제공합니다.

제조공정

  1. 애니메이션의 진화와 기법: 초기 장치부터 CGI까지
  2. 플로피 디스크의 진화: 자기 매체에서 광학 저장장치로
  3. 블루투스 제어 아두이노 스파이봇(Spybot) 만들기
  4. 플릭모트(FlickMote): 스마트 홈을 위한 제스처 제어 IR 리모컨
  5. DIY 아두이노 TV B-Gone: 모든 TV를 끄는 만능 리모컨
  6. 아두이노로 만드는 대형 LED 마스터 시계 (알람 기능 포함, 12m 거리에서도 식별 가능)
  7. 아두이노와 블루투스로 만드는 스마트 물건 찾기 'Find Me'
  8. 아두이노 프로젝트를 위한 최적화된 전원 솔루션
  9. 아두이노 틱택토 게임 - MAX7219 LED 매트릭스와 골판지 케이스
  10. 아두이노 기반 아마가 플로피 디스크 리더 - 저렴한 오픈소스 데이터 복구 솔루션