맞춤형 펌웨어로 USB 릴레이 보드의 새로운 기술을 배웁니다.
홈페이지홈페이지 > 소식 > 맞춤형 펌웨어로 USB 릴레이 보드의 새로운 기술을 배웁니다.

맞춤형 펌웨어로 USB 릴레이 보드의 새로운 기술을 배웁니다.

Dec 14, 2023

컴퓨터에서 몇 가지 장치를 빠르고 쉽게 제어할 수 있는 방법을 찾고 있다면 저렴한 USB 릴레이 보드가 이상적인 솔루션일 수 있습니다. 이는 마이크로 컨트롤러와 몇 개의 릴레이로 구성된 매우 간단한 장치입니다. 그러나 이것이 개선의 여지가 없다는 의미는 아니며 [Michał Słomkowski]가 최근 시연한 것처럼 이러한 보드를 맞춤형 펌웨어로 플래싱하면 사용자가 기본 기능을 수정할 수 있습니다.

그의 경우, [Michał]은 컴퓨터가 절전 모드로 전환되면 연결된 모든 장치의 전원을 차단하는 멀티탭을 만들고 싶었습니다. 불행히도 그는 마더보드가 USB 포트에 항상 전원을 공급했기 때문에 라인에 5V가 있는지 확인할 수 없었습니다. 그러나 릴레이 보드의 펌웨어를 일부 수정하면 버스가 활성화될 때 매 밀리초마다 나가는 프레임 시작 패킷을 관찰하여 USB 활동이 있는지 감지할 수 있어야 한다고 생각했습니다.

이제 [Michał]은 이러한 보드 중 하나에 대한 맞춤형 펌웨어를 생각해낸 최초의 사람이라고 주장하지 않습니다. 사실 그는 기존 오픈 소스 펌웨어 프로젝트가 자신의 작업에 영감을 주었다고 말합니다. 그러나 그는 이러한 ATtiny45 기반 장치를 위한 완전히 새로운 GPLv3 펌웨어를 만들었습니다. 여기에는 V-USB의 최신 버전이 포함되어 있습니다. V-USB에는 즉시 사용 가능한 프레임 시작 패킷 감지 기능이 포함되어 있어 활동 감지 코드를 훨씬 쉽게 구현할 수 있습니다.

새 펌웨어가 릴레이 보드의 칩에 플래시된 후 [Michał]은 이를 인클로저에 넣고 콘센트를 연결했습니다. 하지만 아직 퍼즐의 한 조각이 빠져 있었습니다. Linux는 소위 "선택적 일시 중지" 절전 기능의 일부로 USB 장치와 적극적으로 통신하지 않는 한 실제로 프레임 시작 패킷을 보내지 않는 것 같습니다. 운 좋게도 공급업체/제품 ID 쌍을 기반으로 특정 장치에 대해 이 기능을 비활성화할 수 있는 지원이 있으므로 약간의 udev 조작 후에 모든 것이 예상대로 작동했습니다.

우리는 Hackaday에서 맞춤형 펌웨어 프로젝트를 좋아합니다. 독점 소프트웨어를 장치에 포함시키지 않을 뿐만 아니라 인공 페이월 뒤에 숨겨져 있던 새롭고 확장된 기능을 잠금 해제하는 경우도 많습니다.