2026년 4월 26일 일요일

건반은 늘어가고

사운드 모듈(Fluid Ardule, GitHub) DIY에 빠져 있으니 다음 관심사는 여기에 잘 어울리는 건반을 하나 더 구하는 것이다. 심심할 때마다 Mule 장터나 당근마켓을 뒤적거리다가 ICON iKeyboard 8Nano가 매력적인 가격에 나온 것을 발견하였다. 나는 이미 같은 브랜드의 5Nano(49키 제품)을 갖고 있지만, 키 수가 약간 부족한 것에 불만을 느끼고 있었다. Korg X2 Worksatation(76키)는 외장형 사운드 모듈의 컨트롤러로 쓰기에는 부족함이 없지만, 필요할 때마다 꺼내서 펼치기에는 꽤 무겁다.

ICON iKeyboard Nano 시리즈는 알루미늄 하우징으로 둘러싸여 있어서 견고한 반면 슬림한 형태라서 그렇게 무겁지 않다. 무게는 약 6.5kg 정도이다. 당근마켓에 올라온 매물을 흥미롭게 하루 이틀 지켜보고 있던 중 다른 사람이 걸어 놓은 예약이 무산되면서 가격이 더 떨어진 상태가 되었다. 기회가 나에게 온 것으로 확신하고 구입 예약을 한 뒤 일요일 오전 한남대학교로 향했다.



위에서 두 번째 건반이 이번에 구입한 ICON 8Nano.

Fluid Ardule은 하루가 다르게 발전하여 이제는 Yoshimi까지 울릴 수 있는 상태가 되었다. 지금까지 구현한 많은 기능을 아직도 파이썬 스크립트 파일 하나에 쑤셔 넣어서 버티고 있다. 현재 스크립트는 4,600 라인을 넘었다. 음색에 대한 편집 및 저장 기능까지 넣게 되면 드디어 파일을 분할해야 될 것 같다.

현재 가장 즐겨 사용하고 있는 미디어 파일 재생 기능.

버스 파워로 구동되는 기기를 라즈베리 파이에 꽂을 때마다 'Undevoltage detected!' 경고문이 뜨는 것이 마음에 들지 않아서 오늘 오후에는 간단한 케이블 어댑터를 만들었다. 3개 선(D+, D-, GND)으로만 두 기기가 연결되게 하되 시스템 전체에 전원을 공급하는 Meanwell 5V 10A SMPS에서 선을 뽑아서 하위 기기의 VBUS에 연결하였다. 


위 사진의 케이블 어댑터의 실제 구조는 다음과 같다. 두 개를 만들어서 SMPS에 연결하는 선을 한데 합친 뒤 Y형 압착 단자로 말단 처리를 하였다. 지난 1월에 만든 또 다른 버전에서는 외부 전원을 연결하지 않은 방식을 택하였었다(사진, 원본 글). 또 다른 버전을 쓰려면 USB 기기에는 직접 5V 전원을 공급해 주어야 한다.

왼쪽은 라즈베리 파이(호스트), 오른쪽에는 다른 USB 디바이스를 연결한다.


이렇게 하였더니 UI controller로 쓰이는 아두이노 우노(UNO-1)에 전원이 공급될 때 나오던 undervoltage 경고는 사라졌다. 그러나 MIDI 키보드 컨트롤러는 여전히 연결 직후에 전압이 부족하다는 메시지를 내보인다.

이 메시지에 이어서 항상 'Voltage normalised'라는 표시가 나오기 때문에 기기에 따라서 연결 직후에만 순간적인 전압 강하 현상이 일어났다가 즉시 정상 상태로 복귀가 되는 것으로 여겨진다. 그러내 내가 갖고 있는 유전원 USB나 10A급 SMPS로도 말끔하게 해결되지가 않는 것은 여전히 미스테리이다.

ICON 8Nano를 연결하고 사진을 찍었다.

전압 관련 메시지는 시스템 콘솔(시리얼 통신을 이용하여 PuTTY에서 접속) 화면이나 dmesg -w 명령을 통해서 실시간으로 볼 수 있다. dmesg는 부팅 이후 경과한 시간을 초 단위로 커널 메시지를 보여주므로, 우리에게 익숙한 시각(몇시 몇분 몇초)으로 표시하려면 dmesg -wT가 더 편리하다. 

'dmesg -wT'를 실행 한 뒤 키보드를 연결했을 때 나오는 메시지.

dmesg는 시스템 작동에 대한 모든 메시지가 다 나오므로 다소 번잡하다. 라즈베리 파이의 전원 상태, 특히 저전압 발생 여부를 확인하려면 다음 명령어(vcgencmd)를 사용한다. 

vcgencmd get_throttled

예를 들어 다음과 같이 출력될 수 있다.

throttled=0x0

이 경우는 정상이다. 현재 저전압도 없고, 과거 저전압 기록도 없다는 뜻이다. ChatGPT를 이용하여 이 명령어의 결과 설명에 대해 좀 더 알아보자.


주요 결과 해석

출력값 의미
throttled=0x0 정상. 저전압 또는 클럭 제한 이력 없음
throttled=0x1 현재 저전압 상태
throttled=0x2 현재 클럭 제한(throttling) 상태
throttled=0x50000 과거에 저전압 및 클럭 제한이 발생한 적 있음
throttled=0x50005 현재도 저전압/클럭 제한이 있고, 과거에도 발생한 이력이 있음

자주 보는 비트 의미

비트값 의미
0x1 현재 저전압 감지
0x2 현재 클럭 제한 중
0x4 현재 주파수 제한 중
0x10000 부팅 이후 저전압이 발생한 적 있음
0x20000 부팅 이후 클럭 제한이 발생한 적 있음
0x40000 부팅 이후 주파수 제한이 발생한 적 있음

즉, 0x1이 포함되어 있으면 지금 전압이 낮다는 뜻이고, 0x10000이 포함되어 있으면 현재는 괜찮더라도 부팅 이후 한 번 이상 저전압이 있었다는 뜻이다.


실전 해석

USB MIDI 장치, 오디오 DAC, 아두이노, 외장 USB 메모리 등을 라즈베리 파이에 함께 연결했을 때 장치가 끊기거나 재인식된다면 이 명령어를 먼저 확인해 보는 것이 좋다.

vcgencmd get_throttled

결과가 throttled=0x0이면 전원 상태는 비교적 양호하다. 그러나 0x1, 0x10000, 0x50000, 0x50005 같은 값이 나온다면 전원 공급, USB 케이블, 커넥터, 허브, 배선 저항 등을 점검해야 한다.

특히 라즈베리 파이 3B처럼 USB와 이더넷이 내부적으로 같은 버스를 공유하는 보드에서는 전원 품질과 USB 부하가 시스템 안정성에 큰 영향을 줄 수 있다. ChatGPT 설명은 여기까지.

갑자기 아이디어 하나가 머리를 스치고 지나갔다. 오늘 만든 케이블 어댑터를 통해 키보드를 연결한 상태에서 전원을 올린다면? 키보드는 SMPS를 통해 즉시 전원을 공급받게 되니 라즈베리 파이가 부팅되는 동안 이미 ON된 상태가 될 것이다. 이때 잠시 전압이 출렁거린다 해도 라즈베리  파이의 부팅 과정에 영향을 크게 줄 것 같지는 않다. 부팅이 끝난 뒤에는 저전압에 대한 기록이 당연히 남지 않을 것이다. 실제로 실험을 해 보니 과연 그렇다. 성가신 저전압 경고 메시지를 보이지 않게 하는 것(눈 가리고 아웅?)이 최종적인 목표라면, 이렇게 해서 안 될 이유가 없다.  

아마 특별한 일이 없다면 내 인생에서 더 이상 건반을 사는 일은 없을 것이라고 다짐해 보지만, 그것을 또 어찌 알겠는가? 예전에 쓰던 사무실에서 수선을 기다리고 있는 StudioLogic SL-990은 또 어떻게 할 것인가? 고치겠다고 분해를 해 놓은 뒤 10년 가까이 지나고 있으니 말이다(당시 작성한 글 링크). 

Fluid Ardule의 개발 역사 및 오늘의 테스트(Yoshimi 즉흥 연주)를 간략하게 담은 영상을 만들었다.




댓글 없음: