처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.08.05 57

측색계 화면에 바로 RAL 색상을 띄우는 펌웨어 개조, WebUSB로 5분

Hacker News 원문 보기

3nh의 CR4501은 색을 꽤 정확하게 재는 측색계지만, 정작 그 색이 어떤 RAL 톤인지는 알려주지 않는다. 제조사가 의도한 방식은 스마트폰 앱을 열고 블루투스로 기기와 페어링해 확인하는 것이다. 도장·건축 자재·품질 검사처럼 현장에서 반복적으로 색을 재고 RAL 번호로 소통해야 하는 실무자에게는 이 한 단계가 은근히 성가시다. 최근 공개된 한 개조 프로젝트는 이 답을 기기 자체 화면에 직접 띄운다. 측정이 끝날 때마다 가장 가까운 RAL Classic 톤의 이름과 일치도를 화면에 표시해, 재고 읽고 넘어가는 흐름을 만든다.

방식은 크롬이나 엣지 브라우저의 WebUSB 기능을 이용한 펌웨어 플래싱이다. 서버로 아무것도 올라가지 않고, 기기의 펌웨어가 사용자 컴퓨터를 벗어나지 않는다는 점을 개발자는 강조한다. 도구가 업데이트 모드 진입, 드라이버 확인, 백업, 플래싱, 확인의 순서를 단계별로 안내하며, 전체 과정은 되돌릴 수 있게 설계됐다. 덤으로 공장 펌웨어가 측정 화면에서 막아둔 좌·우·확인 버튼의 기능도 풀려, 조작이 상식적으로 동작하게 된다.

업데이트 모드 진입의 감각

실제로 손이 가는 유일한 까다로운 대목은 업데이트 모드로 넣는 과정이다. 먼저 측정 버튼을 눌러 기기를 완전히 끈 뒤, 아무것도 건드리지 말고 최소 5초를 기다려야 한다. 이 멈춤이 없으면 기기가 반응하지 않는다. 이후 측정 버튼을 링이 붉게 깜빡일 때까지 다시 누르거나(즉시 손을 뗀다), 측정 버튼과 확인 버튼을 로커 중앙을 누르듯 함께 눌러 붉은 깜빡임을 유도한다. 링이 붉게 깜빡이면 준비된 상태이며, 화면이 어두운 채로 있는 것은 정상이다.

윈도우 환경에서는 걸림돌이 하나 더 있다. 업데이트 모드에서 브라우저가 접근할 수 있는 드라이버가 기본 제공되지 않기 때문이다. 이때 Zadig로 드라이버를 한 번만 설치해 해결하는데, 반드시 WinUSB여야 한다. libusbK나 libusb-win32는 dfu-util로는 동작하지만 브라우저가 기기를 인식하지 못한다. 개발자가 가장 흔한 실수로 꼽는 부분이다.

어디에 쓰고, 어디는 건드리지 않는가

이 개조가 신뢰를 얻는 핵심은 쓰기 범위를 좁게 제한한다는 데 있다. 변경은 애플리케이션 영역(0x08004000~0x0802FFFF) 안의 일곱 군데, 5킬로바이트 남짓에 그친다. 0x08030000 위쪽은 손대지 않는데, 여기에는 스플래시 화면과 설정, 무엇보다 공장 교정값이 들어 있다. 교정값은 기기마다 다르며, 남의 것을 덮어쓰면 기기가 영구히 잘못 측정하게 되고 그것을 알아채기도 어렵다. 도구는 이 영역에 대한 쓰기 접근을 아예 거부한다.

RAL 매핑 데이터는 216개 RAL Classic 톤을 각각 세 번씩 측정해 만들었고, 반복 측정 편차는 평균 0.08 ΔE, 최악의 경우 0.50 ΔE였다. 측정에는 세미매트 마감의 정품 RAL K5를 썼다. 색 패널이 팬덱보다 넓어 8mm 조리개가 패널 안쪽에 안정적으로 놓이고 가장자리를 물지 않는다는 설명이다. 개발자는 오히려 액세서리 시장의 복제 색상 카드가 수 ΔE씩 벗어나고 서로 일관성도 없다고 지적한다. 판독값이 그런 카드와 어긋난다면 대개는 카드 쪽이 문제라는 것이다.

데이터 구조도 자원 제약 아래에서 다듬어졌다. 항목당 10바이트로 L·a·b를 100배한 정수와 RAL 번호, 화면 표시용 색상값을 담고, 색 이름은 반복 대신 단어 조각을 공유하고 참조하는 별도 블록으로 두었다. 그렇게 하지 않으면 남은 메모리에 들어가지 않았기 때문이다. 개조 도구(werkzeug/)에는 216색을 차례로 재고 산포와 중복 측정을 점검한 뒤 사용자 자신의 백업으로부터 완성 펌웨어를 만드는 프로그램도 포함돼, 다른 팬덱이나 자기 기기로 값을 새로 뽑을 수 있다.

실무적으로 어디까지 믿을 것인가

개발자는 이 데이터가 팬덱 하나와 기기 하나에서 나온 값임을 솔직히 밝힌다. 팬덱은 시간이 지나며 누렇게 변색되고 측색계마다 고유한 교정값을 가진다. 따라서 이 개조는 '대략 어떤 RAL인가'를 현장에서 즉시 알기에는 적합하지만, 최종 승인이나 클레임 처리처럼 근거가 필요한 상황에서는 여전히 팬덱을 꺼내야 한다. 복원 시에는 -t 옵션을 쓰지 말고 영역 전체를 한 번에 써야 하는데, 부트로더가 첫 쓰기 명령에서 전체를 지우고 완전한 이미지를 기대하기 때문이다. 메모리 맵과 버튼 체계, USB 프로토콜, 영구 메모리 기록 방식은 doku/ 문서(독일어)에 정리돼 있으며 모든 주소는 실기기나 플래시 덤프에서 검증됐다고 한다. 결국 이것은 보증 없는 주말 프로젝트이지만, 백업으로 돌아갈 길을 확보한 채 교정값은 건드리지 않는다는 원칙 위에 서 있다는 점이 이 개조의 성격을 잘 보여준다.

이 뉴스가 유용했나요?

TTJ 코딩클래스 정규반

월급 외 수입,
코딩으로 만들 수 있습니다

17가지 수익 모델을 직접 실습하고, 1,300만원 상당의 자동화 도구와 소스코드를 받아가세요.

144+실전 강의
17개수익 모델
4.9수강생 평점
정규반 자세히 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.