1P by GN⁺ | ★ favorite | 댓글 1개
  • Nintendo Switch Lite 로직 보드의 조립 상태 PCB에서 netlist를 추출하고, 부품·패드 형상과 양면 기준 이미지를 결합한 boardview 데이터가 공개됨
  • 작업에는 6,000 PPI PCB 파노라마, 부품·패드 데이터를 얹는 GUI, 다수 핀을 순차 구동하고 상태를 읽는 자체 추출 PCB가 함께 사용됨
  • 전체 절차는 양면 촬영·정합, RF Shield 제거, 부품 탈거와 분류, GND 연속성 측정, 외층 연결 기반 net-fragment 그룹화, 추출 PCB 배선과 fragment 병합으로 이어짐
  • 공개 데이터는 OpenBoardView에서 Switch Lite Logic Board.bvr로 열 수 있으며, 복잡한 렌더링은 현재 OBV에서 지원되지 않아 FlexBV5 호환성도 함께 제공됨
  • 6,000 PPI 원본의 큰 용량, 상면 파노라마 오염, flux 잔여물로 인한 false-positive 가능성, 부품 전기 특성 측정 데이터 부족은 결과 해석 시 주의가 필요함

공개된 Switch Lite boardview 데이터

  • 공개물은 조립된 Nintendo Switch Lite 로직 보드에서 netlist를 추출한 결과임
  • PCB에서는 부품이 노출된 mounting pad에 납땜되고, 구리층이 pad 사이를 연결해 전기 회로를 이룸
  • pad와 부품 사이의 전체 연결 목록이 netlist이며, 여기에 부품·패드 형상을 결합하면 boardview가 됨
  • 최종 데이터는 boardview와 PCB 양면 기준 이미지를 함께 묶은 형태임

OpenBoardView에서 여는 방법

  • 최신 OpenBoardView를 내려받음
  • 공개 데이터는 Torrent 또는 Download로 받을 수 있음
  • 압축을 풀고 포함된 .txt 파일을 모두 읽은 뒤 OBV에서 다음 순서로 사용함
    • View에서 Board FillPart Fill을 비활성화
    • File에서 Switch Lite Logic Board.bvr를 엶
    • 왼쪽 클릭으로 부품·패드 net을 확인하고, 드래그로 이동하며, 마우스 휠로 확대·축소
    • 가운데 클릭 또는 Space로 보드 면을 전환

netlist 추출을 가능하게 한 요소

  • 6,000 PPI로 조립된 PCB의 기하학적·색상 정확도가 맞는 파노라마 이미지를 만드는 절차가 쓰임
  • 파노라마 위에 부품·패드 형상 데이터를 그리는 point-and-click GUI가 사용되며, 임의 데이터 추가와 수정도 지원함
  • 자체 제작한 PCB는 임의 개수 핀을 하나씩 전원 인가하고, 각 단계마다 모든 핀 상태를 읽을 수 있음

실제 작업 흐름

  • 여러 이미지를 촬영해 하단면 파노라마를 stitching함
  • 보드를 뒤집고 RF Shield를 desolder한 뒤 상단면 파노라마도 stitching함
  • 두 파노라마와 다른 이미지를 상호 비교해 기하학적·색상 정확도를 더 정제함
  • 완성된 파노라마를 GUI에 가져와 초기 부품·패드 형상을 배치함
  • 모든 부품을 하나씩 desolder하고, 추후 분석을 위해 고유 bin 위치에 넣음
    • bin 위치와 추정 reference designator를 GUI에 기록함
    • 2단계에서 만든 pad 형상에 차이가 있으면 수정함
  • 모든 pad가 노출되고 short되지 않은 상태에서 DMM을 연속성 모드로 사용함
    • 한 리드를 ground plane에 연결함
    • 다른 리드로 PCB의 모든 pad를 probing함
    • hit를 GUI에 기록하고 하나의 net으로 병합함
  • 남은 pad들은 양쪽 외층에서 보이는 연결을 기준으로 net-fragment로 그룹화함
    • 보이는 연결이 없으면 독립 fragment로 간주함
  • 추출 PCB 핀에서 대상 PCB의 net-fragment로 납땜한 wire 순서를 GUI에 기록함
  • 추출기를 실행하면 전원이 추출 PCB 핀에서 wire를 통해 net-fragment로 들어감
    • PCB 내부의 숨은 연결을 지나 다른 net-fragment로 이동함
    • 다시 wire를 타고 추출 PCB로 돌아오며, 이 결과가 기록됨
    • 기록된 결과는 숨은 연결 전체 매핑을 만드는 데 사용됨
  • 추출기 매핑을 기준으로 fragment를 병합해 완성된 netlist를 만들고, boardview 파일로 내보냄

데이터와 도구의 제약

  • 원래 6,000 PPI 파노라마는 각각 0.5 gigapixel 규모라 여러 문제가 발생함
  • 6,000 PPI 파노라마는 Torrent 또는 Download로 제공됨
  • ZoomHub에서 top-sidebottom-side 파노라마를 볼 수 있음
  • 부품·패드 outline은 단순한 형태로 보일 수 있음

공정상 빠진 부분과 품질 한계

  • RF Shield 제거 이후와 추출 전 단계 사이에는 초음파 세척이 들어가는 것이 바람직함
  • low-melt bismuth solder 없이 RF Shield를 제거하려면 여러 요령이 필요함
  • 초음파 세척기가 없어 상단면 파노라마가 하단면보다 더러움
  • 추출 전 flux 잔여물이 충분히 전도성을 띠면 net-fragment 사이에 false-positive 연결이 생길 수 있음
  • 8단계와 9단계 사이에는 bin에 넣은 부품을 꺼내 전기 특성을 측정하는 단계가 빠져 있음
    • 보유 장비는 기본적이고 정확도가 낮은 LCR Meter임
    • 지금 측정하면 상대적으로 낮은 품질의 불완전한 데이터가 될 수 있음

프로젝트의 목적과 지원 요청

  • 제작자는 의료, 항공우주, 군사, 산업 분야의 Electronics Contract Manufacturing에서 10년 넘게 일한 배경이 있음
  • 그중 절반 이상은 SMT Process Technician으로, 고가 장비에 읽기·쓰기 접근 권한을 가진 경험임
  • 이 프로젝트는 Work-From-Home 인터넷 프리랜싱과 숙련된 전기 납땜을 결합하는 실험임
  • 수리점 운영, 광고 수익용 알고리듬 대응, affiliate link 홍보, 저품질 도구 재판매는 목표로 삼는 납땜 작업과 맞지 않음
  • 공개 데이터가 유용하거나 더 보고 싶다면 donate를 요청함
    • 지원을 통해 더 많은 기기 추가, cycle time 단축, 품질 개선, 더 많은 데이터 제공을 진행하려 함
    • 비용 최적화, 문서화, 오픈소스화를 통해 전체 절차를 재현 가능하게 만드는 목표가 있음

댓글과 토론

Hacker News 의견들
  • 직접 경험은 없지만, 자금 모델에서는 작업물을 공개한 뒤 불법 복제 때문에 수익이 거의 안 날까 봐 걱정하는 것 같음. 차라리 크라우드펀딩으로 먼저 돈을 모으는 방식을 고려해볼 수 있고, 사람들이 가장 원하는 프로젝트에 자연스럽게 투표하는 효과도 있음
    이 모델은 악명 높은 Denuvo DRM 크래커 Empress와 비슷함. 사실상 이 게임 안티치트를 깰 수 있는 유일한 사람으로 알려져 있음: https://en.m.wikipedia.org/wiki/Empress_(cracker)
    주변에 논란은 꽤 많지만, 재정적으로는 굴러가는 것처럼 보임. 또 이 작업이 어디에 쓸모가 있는지, 다른 사람에게 어떤 가치 제안이 되는지도 생각해볼 만함. 예를 들어 축소 개조한 Wii 콘솔처럼, 좋아하는 회로의 넷리스트를 얻어 더 작은 크기와 더 많은 레이어, 현대적 기법으로 재현하고 싶어 하는 소수의 사람들은 큰 가치를 느낄 수 있음

    • Denuvo를 깰 수 있는 사람 중 상당수는 그냥 하고 싶지 않은 것일 가능성이 큼
      다들 나이를 먹었고, 안정적이고 보수 좋은 개발자 일을 하고 있음. 법을 어길 위험조차 감수하고 싶지 않음. 1987~2004년은 정말 재미있었지만, 20년 동안 IDA를 열어본 적이 없음. 그 장은 닫혔고, 나만 그런 건 아닐 것 같음
      한때는 머릿속으로 Z80을 역어셈블할 수 있었음. 지금은 C9가 RET였다는 것만 기억나고 나머지는 잊어버림
    • 현상금 사냥꾼식 크라우드펀딩이 아마 이상적일 듯함. 각 스레드가 서로 다른 크라우드펀딩 캠페인이 되는 포럼 소프트웨어 정도는 대충 만들 수 있을 것 같음
    • 특정 회로를 대상으로 크라우드펀딩하는 절차에 동의함
      오래된 기기용 새 PCB가 있으면 좋은 프로젝트가 많음. 예를 들어 커패시터나 배터리 손상에 취약한 빈티지 컴퓨터가 있고, Mac 대체 보드도 몇 가지 있지만 분명히 손수 만든 애정 어린 작업물임
      클래식 Hi-Fi도 40년 된 보드와 열화되는 소재가 많음. 예를 들어 초기 양면 PCB는 두 번째 층을 말 그대로 칠해 만든 경우도 있음. 정확한 넷리스트는 거의 읽기 힘든 오래된 서비스 매뉴얼 스캔뿐인 회로도 정보의 품질을 높이는 데도 도움이 될 수 있음
  • 훌륭한 프로젝트임. 며칠 전에 봤는데 와이어 수가 인상적이었음
    몇 년간 PCB를 역공학해왔고, 주로 2~4층 보드를 다뤘는데, 이건 내가 어떻게 풀지 고민하던 문제의 일부임. 떠오르는 최선은 3D 프린터를 짜깁기해 만든 플라잉 프로브 장비임. 기본적으로 1) 보드 위아래를 스캔하고 2) 테스트 포인트와 패드 목록을 만들고 3) 좌표를 플라잉 프로브 시스템에 넣어 넷리스트를 생성하는 방식임
    다층 보드를 처리하는 다른 방법은 스캔-샌딩-스캔 방식임. 접지면 설계, 가드 트레이스 같은 구조를 정확히 잡아내기 때문에 개인적으로는 가장 정확하다고 봄. 정확한 아트워크를 얻을 수 있지만, 발생하는 먼지가 꽤 유해하다는 단점이 있음

    • Image→CAD 데이터가 있으면, 공정을 자동화하기 위해 다이 본딩 장비와 비슷한 것을 대충 만들 수 있을 것 같음. 플라잉 프로브는 연속성 전체를 커버하려면 양면에 두 개의 헤드가 필요하고, 살짝 빗나간 접촉이나 불량 접촉을 처리하려면 미세 오프셋으로 여러 번 찌르는 알고리즘도 필요함
      프로브 헤드의 정전용량 변화를 감시해서 접촉 품질을 추론할 수도 있음
    • 역공학한 PCB 데이터로 뭘 할 수 있음? 작동하는 보드를 하나 갖고, 역공학한 다음, 결국 직접 만들 수 있게 되는 건가?
    • 왜 PCB를 역공학함? 시작할 때 어떤 자료를 참고했는지도 궁금함
    • 스캔한 PCB 레이어에서 넷리스트를 자동 생성하는 도구가 있나?
  • 기사에 나온 PCB를 빠르게 Openseadragon 뷰어로 만들어봤음: https://ha-norge.no/images/pcb_highres/highres_pcb.html
    124MB JPG를 다운로드하지 않고도 휴대폰에서 전체 해상도로 볼 수 있음. 이미지는 서로 다른 해상도의 레이어와 아주 많은 작은 이미지, 45,000개 이상으로 구성됨

    • 대역폭 덕분에 정말 고마움. 앞으로 보드 스캔에 이런 방식을 쓰고 싶지만, 호스팅 인프라가 없음. OSD가 오버레이를 지원하는 건 알고 있고, OpenBoardView 기능을 웹앱으로 제공할 수 있으면 멋질 것 같음
  • 맞는 말이지만, 2천 개 와이어를 납땜하고 싶지는 않음. 마지막으로 보드를 “전문적으로” 역공학했을 때는 외부에 보내 CT 스캔을 맡겼고, 포인트 클라우드 데이터와 표면 추출, 히스토그램 조정으로 특징을 보이게 하는 인터페이스가 들어 있는 자체 실행 프로그램을 받았음
    나라면 3D 프린터 섀시에 자동 프로브 몇 개를 달고, 비전/정합/전통적 컴퓨터 비전 알고리즘을 조합하겠음
    이런 물건은 이미 존재하지만, 오픈소스 버전이 있었으면 좋겠음

    • 이런 종류의 CT 스캔을 할 수 있는 오픈소스 X선 장비를 만드는 게 가능할까?
      가능해야 할 것처럼 보이긴 하는데, 소스와 CCD 검출기에 대해 충분히 몰라서 어떻게 조립할 수 있을지 감이 안 옴
  • 여기 필요한 납땜 작업량은 미쳤음. 같은 작업을 납땜 없이 완전 자동으로 수행하는 산업용 플라잉 프로브 장비가 있지만, 전형적인 중국식 역공학은 보드를 한 층씩 갈아내는 방식임: https://www.chinapcbcopy.com/pcb-reverse-engineering/
    중국 업체들이 이 서비스를 아주 낮은 가격에 제공하고 있고, PCB 하나에 수백 달러 수준임
    https://www.pcb-hero.com/blogs/lilycolumn/pcb-reverse-engineering-1
    https://www.chinapcbcopy.com/pcb-clone-service/
    https://www.pcbtok.com/pcb-reverse-engineering/

    • “PCB 역공학은 일련의 역연구 기법을 사용하는 역연구 기술입니다”라니, 세상에
  • 이런 게 있었으면 정말 좋았을 듯함. 최근 몇 달 동안 Dell 서버 메인보드의 전원 공급 인터페이스와 Lenovo ThinkCentre 메인보드의 PCI-E 라이저를 역공학해보려 했는데, 손으로 하기가 너무 고통스러워서 기본적인 연결 몇 개만 파악하고 거의 포기했음
    목표가 뭔지는 잘 모르겠음. 이건 훌륭한 오픈소스 프로젝트가 될 것 같음. 돈을 벌고 싶더라도, 도구 자체보다는 공정에서 훨씬 많은 가치를 만들 수 있다고 봄. 도구는 어차피 사실상 본인만 제대로 쓸 수 있을 테니까
    아래 댓글에서 본딩 장비처럼 공정을 더 자동화하는 얘기를 했는데, 이 일반적인 영역에서는 3D 프린터 쪽에서 기계적으로 많은 작업이 이미 이루어졌음. 프로빙용으로 비교적 쉽게 응용할 수 있을 것 같음

    • 원래 목표는 가능하다고 생각한 아이디어를 실제로 어떻게 실행할지 끝까지 파악하는 것이었음. 현재 목표는 이를 개선하고 반복하면서, 이런 것에 대한 시장 관심이 실제로 어느 정도인지 보는 것에 가까움
      가치는 대부분 이미징 기술에 있다고 생각하고, 우편 접수 서비스로 쉽게 제공할 수 있음. 익스트랙터 PCB도 대량 생산해 약간의 마진을 붙여 팔고, 나머지는 오픈소스로 공개할 수 있음
  • 플라잉 프로브의 기계적 난점을 없애기 위해 못 침대 방식을 쓸 수 있을지 궁금함. 일정 해상도의 그리드에 수천 개의 프로브를 깔고, 이미 갖고 있는 것과 거의 같은 스위치 매트릭스 백엔드에 연결하는 식임
    특히 [1] 같은 물건은 해상도가 충분할 수도 있음. 이제 “프로브”는 감지 PCB 위의 패드일 뿐임. 이러면 기계 문제가 미친 듯한 고밀도 PCB 레이아웃 문제로 바뀌는데, 그건 오히려 잘 맞는 분야처럼 들림
    이방성 층의 열경화는 귀찮고 단회용 해법이 될 수 있지만, 보드를 판매하는 입장이라면 나쁘지 않음
    또 하나의 “멍청하지만 될지도 모르는” 개념은 보드 스캔을 이용해 같은 패드 레이아웃을 거울상으로 가진 맞춤 PCB를 출력하고, 두 보드를 마주 보게 직접 장착하는 것임. 보드 수준의 브레이크아웃으로, 와이어 납땜을 쉽게 하거나 더 나아가 넷리스트 추출 하드웨어를 직접 통합할 수 있음
    [1] https://www.3m.com/3M/en_US/p/d/b5005076018/

    • 이 방식은 확장성이 없음
      현대 휴대기기는 0.5mm 간격의 BGA 패키지를 자주 씀. 이 해상도에서는 비교적 작은 5×5cm 보드도 한 면당 최소 100×100, 즉 1만 개의 프로브가 필요함. 보드 크기가 커지면 개수는 제곱으로 증가함
      훨씬 쉬운 방법은 빠르게 움직일 수 있는 소수의 프로브를 가진 플라잉 프로브 장비임 [1]. 글에서도 이 선택지를 언급하지만 초기 비용 때문에 배제하고 있음
      [1] https://en.wikipedia.org/wiki/Flying_probe
    • 마지막 아이디어가 마음에 드는데, 보드끼리는 어떻게 연결함? 솔더볼? 그냥 압력?
    • 글을 읽으면서 같은 생각을 했음. 프로빙을 꽤 많이 자동화할 수 있을 듯함
  • 숨은 연결을 찾는 무차별 대입 방식이 단순하지만 훌륭함. 현재 취미 역공학 작업 중 상당수는 훨씬 더 멀리 가야 하고, 파괴적이며, 층별로 갈아내는 작업이 필요하다는 걸 알고 있음. 그 결과 단순한 보드뷰가 아니라 1:1 재구성이 나오지만, PCB 레이어가 많아질수록, 특히 최첨단 소비자 기기에서는 점점 더 어려워질 게 분명함

  • 정말 대단함. 특히 손납땜이 인상적인데, “이건 불가능해, 이걸 수천 번 해야 하잖아”에 대해 “그래서 수천 번 했습니다”로 밀어붙이는 장르를 좋아함
    다만 요즘 홈브루 픽앤플레이스가 점점 가능해지고 있으니, 이를 활용할 실용적인 방법이 있을지 궁금함. 와이어랩 도구와 비슷한 픽앤플레이스 팁이라면 그럴듯해 보이기도 함. 아니면 칩의 본드 와이어에 더 가까워서 정밀도가 한 자릿수 더 필요한 작업인가?

    • 이 PCB에서 가장 작은 타깃은 지름 약 0.2mm임. 정밀 로봇공학 관점에서는 충분히 관리 가능한 수준임. 와이어 공급기와 절단기를 붙인 로봇 납땜 인두나 레이저 납땜 시스템으로, 올바른 패드에 와이어를 납땜하는 기초적인 다이 본더 같은 것을 만들 수 있음
      공정 엔지니어링 배경 때문에, 처음부터 고도로 자동화된 공정보다는 자동화 가능한 매우 수동적인 공정을 먼저 찾아내는 쪽으로 기울었음
  • 수리할 권리 같은 주제로 YouTube의 Louis Rossmann에게 인터뷰를 요청하면 좋을 것 같음

    • 원글 작성자는 아니지만, Louis “내 아이를 때릴 수 있어야 한다” Rossmann을 덜 접할수록 내 삶은 나아졌음
      Rossmann은 수리할 권리 운동의 RMS 같은 존재임. 전체 목표와 맞는 생각도 많지만, 지금은 수리할 권리 장면을 꽤 좁게 보고 있고, 그 밖에서는 꽤 위험한 견해도 있어 대표 인물로는 최악임. 여성과 소수자에 대한 거친 발언 때문에 일부 수리할 권리 활동가들에게 실제로 걸림돌이 되었고, 문제 범위가 어떤 영역까지 확장된다는 것도 인정하지 않음. 예를 들어 식기세척기는 “아무도 보드뷰가 필요 없는 단순한 물건”이라고 스트림에서 몇 번 말했음
      RMS와 비슷하게, 앞서 암시한 발언처럼 라이브 스트림에서 술에 많이 취한 채 기본적인 인간적 품위에 대한 통상적 기준과 잘 맞지 않는 믿음을 설명한 적도 있음