소개
Zapp는 ZSA Technology Labs에서 개발한 크로스플랫폼 CLI 도구로, Voyager, Moonlander, Ergodox EZ, Halfmoon, Planck EZ 등 ZSA 키보드의 펌웨어를 플래시하는 데 사용됩니다. 이 도구는 로컬 펌웨어 파일이나 Oryx URL을 통해 키보드 레이아웃을 업데이트할 수 있으며, 키보드가 부트로더 모드에 진입하면 자동으로 펌웨어를 플래시합니다. Rust로 작성되었으며, MIT 라이선스 하에 배포됩니다.
상세정보
펌웨어 플래시
Zapp은 로컬 펌웨어 파일을 사용하여 키보드를 플래시할 수 있습니다. 지원되는 파일 형식은 DFU 바이너리(.bin)와 Intel HEX(.hex)이며, 각각 Voyager, Moonlander, Planck EZ, Ergodox EZ(Ignition)와 Ergodox EZ(original, HALFKAY)와 호환됩니다. 듀얼 펌웨어 파일(Moonlander rev A + rev B 등)도 자동으로 감지하여 처리합니다.
Oryx URL을 통한 플래시
사용자는 Oryx(https://configure.zsa.io)에서 생성한 레이아웃 URL을 직접 복사하여 zapp flash <URL> 명령으로 펌웨어를 다운로드하고 플래시할 수 있습니다. 지원되는 URL 형태는 레이아웃 ID만 제공하거나 특정 리비전을 지정하는 등 다양한 형태를 포함하며, 최신 리비전을 자동으로 가져오는 기능도 제공합니다.
자동 업데이트 확인
키보드가 이미 Oryx 기반 펌웨어를 실행 중이라면, zapp update 명령을 통해 현재 레이아웃과 리비전을 읽고 Oryx API를 확인하여 더 새로운 버전이 존재하면 자동으로 플래시를 진행합니다. 이 기능은 키보드가 부트로더 모드가 아니고 Oryx 펌웨어를 실행 중일 때만 작동합니다.
다운로드·설치 방법
Zapp은 GitHub 릴리스 페이지에서 사전 빌드된 바이너리를 다운로드하여 사용할 수 있습니다. Windows 사용자는 ZIP 형식의 바이너리를 받아 압축을 풀고 실행 파일을 PATH에 추가하거나 직접 실행할 수 있습니다. 또한, Cargo를 통해 소스에서 직접 빌드하는 방법도 지원됩니다(cargo install --path zapp).
기본 사용법/명령어
Zapp의 기본 사용법은 다음과 같습니다. 먼저 터미널 또는 명령 프롬프트를 열고, 키보드를 부트로더 모드로 전환합니다(보통 리셋 버튼 누르기 또는 특정 키 조합).
- 로컬 펌웨어 파일로 플래시:
zapp flash firmware.bin또는zapp flash firmware.hex - Oryx URL로 플래시:
zapp flash https://configure.zsa.io/voyager/layouts/oBvbQ/latest - 펌웨어 업데이트 확인 및 적용:
zapp update
펌웨어 파일을 로드한 후, Zapp은 키보드가 부트로더 모드에 진입할 때까지 대기하며, 다음과 같은 출력을 표시합니다:
Firmware loaded: Voyager (STM32) (51200 bytes) _ Waiting for keyboard in bootloader mode... ⚡ ████████████████████████████████████████ 100% Done!
지원 환경·시스템 요구사항
Zapp은 크로스플랫폼 도구로 Windows, macOS, Linux에서 실행할 수 있습니다. Windows에서는 ZIP 형식의 사전 빌드된 바이너리를 제공하며, 별도의 설치 관리자 없이 압축 해제 후 바로 사용할 수 있습니다. Linux에서는 USB 장치에 비관리자 권한으로 접근하기 위해 udev 규칙 설정이 필요합니다(sudo cp udev/50-zsa.rules /etc/udev/rules.d/ seguido de sudo udevadm control --reload-rules 및 sudo udevadm trigger).
최신 버전·업데이트
현재 버전은 1.0.2이며, 최신 릴리스 정보와 다운로드 링크는 GitHub 저장소의 [Releases](https://github.com/zsa/zapp/releases) 페이지에서 확인할 수 있습니다. 버전 업데이트는 새로운 키보드 지원, 플래시 안정성 향상, Oryx 연동 개선 등을 포함할 수 있습니다.
시스템 요구사항
별도의 시스템 요구사항이 등록되지 않았습니다.


