Table of Contents

Fluid Ardule 작업 내역 보고서 (2026

-03-27)

1. 개요

본 문서는 2026년 3월 27일 기준 Fluid Ardule 시스템의 개발 및 안정화 작업 내역을 정리한 것이다. 최종 결과물은 다음 두 파일로 구성된다.

본 작업의 핵심 목표는 다음과 같다.



2. 시스템 구성

2.1 하드웨어 구성

2.2 소프트웨어 구성


3. 주요 기능 구현

3.1 사운드폰트 선택 기능

다음과 같은 사운드폰트 리스트를 지원한다.

기능 특징: - Python → UNO로 SFLIST 전송 - UNO에서 메뉴 기반 선택 가능 - 선택 즉시 FluidSynth 재시작 - 현재 선택 상태 LCD 표시


3.2 상태 기반 동작 (State Machine)

주요 상태: - INIT - WAIT_AUDIO - WAIT_MIDI - READY

동작 흐름:

  1. DAC 미연결 → WAIT_AUDIO
  2. DAC 연결 → FluidSynth 실행
  3. MIDI 미연결 → WAIT_MIDI
  4. MIDI 연결 → READY

특징: - 장치 연결/해제 이벤트에 따라 상태 자동 전이 - FluidSynth 자동 시작/종료 - UNO LCD에 상태 반영


3.3 LCD 상태 표시 개선

표시 항목: - Audio: OK / — - MIDI: OK / — - SF: 현재 사운드폰트 - V: 볼륨 값

개선 사항: - 초기화 상태 명확화 (Initializing…) - 장치 미연결 시 명확한 표시 - READY 상태에서 전체 정보 표시


3.4 UNO 전원 제어 기능

SELECT 버튼 long press 기반 기능:

구현 특징: - 메뉴 기반 선택 (No Halt / Reboot) - Python과 ACK 기반 통신 - 중복 명령 방지 - 재시도 로직 포함


3.5 전원 제어 신뢰성 개선

문제: - 기존에는 HALT/REBOOT 명령이 누락되는 경우 존재

해결: - ACK 기반 프로토콜 도입 - Python ↔ UNO 양방향 확인 - 재전송 로직 추가

결과: - 전원 제어 동작 안정화


3.6 UNO 재연결 처리

문제: - DAC 탈착 시 UNO 시리얼 재연결 발생

해결: - UNO_READY 이벤트 처리 - Python에서 전체 상태 재전송

재동기화 항목: - SFLIST - SF - VOLUME - DAC 상태 - MIDI 상태


4. 테스트 결과

4.1 장치 연결 순서 테스트

결과: - 모든 경우에서 정상 상태 진입

4.2 장치 재삽입 테스트

결과: - 상태 정상 복구 - FluidSynth 자동 재시작

4.3 전원 제어 테스트

결과: - 안정적으로 동작


5. 남은 이슈 및 향후 개선

5.1 전원 안정성

개선 방향: - 유전원 USB 허브 사용 - 별도 5V 안정화

5.2 상태 머신 리팩토링


6. 결론

본 작업을 통해 Fluid Ardule 시스템은 다음과 같은 수준에 도달하였다.

2026년 3월 27일 기준으로 본 버전을 최종 안정 버전(Stable Build)으로 간주한다.