1 ポイント 投稿者 GN⁺ 2024-02-26 | 1件のコメント | WhatsAppで共有
  • 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では次の順で使う
    • ViewBoard FillPart Fill を無効化する
    • FileSwitch Lite Logic Board.bvr を開く
    • 左クリックで部品・パッドのnetを確認し、ドラッグで移動、マウスホイールで拡大・縮小する
    • 中クリックまたはSpaceでボード面を切り替える

netlist抽出を可能にした要素

  • 6,000 PPIで組み立て済みPCBの 幾何学的・色彩的精度 が一致するパノラマ画像を作る手順が使われた
  • パノラマ上に部品・パッド形状データを描画する point-and-click GUI が使われ、任意データの追加や修正にも対応する
  • 自作PCBは任意本数のピンを1本ずつ通電し、各段階で全ピン状態を読み取れる

実際の作業フロー

  • 複数画像を撮影して下面パノラマをstitchingする
  • ボードを裏返し、RF Shieldをdesolderした後、上面パノラマもstitchingする
  • 2つのパノラマと他の画像を相互比較して、幾何学的・色彩的精度 をさらに詰める
  • 完成したパノラマをGUIに取り込み、初期の部品・パッド形状を配置する
  • すべての部品を1つずつdesolderし、後の解析のため固有のbin位置に入れる
    • bin位置と推定reference designatorをGUIに記録する
    • 2段階目で作成したpad形状に差異があれば修正する
  • すべてのpadが露出し、shortしていない状態でDMMを連続性モードで使う
    • 1本のリードをground planeに接続する
    • もう1本のリードでPCB上のすべてのpadをprobingする
    • hitをGUIに記録し、1つの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短縮、品質改善、より多くのデータ提供を進めたいとしている
    • コスト最適化、文書化、オープンソース化によって、全手順を再現可能にすることを目標としている

1件のコメント

 
GN⁺ 2024-02-26
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 は、2層目を文字どおり塗って作っていた場合もある。正確なネットリストは、ほとんど読みにくい古いサービスマニュアルのスキャンしかない回路図情報の品質を高めるのにも役立つ
  • 素晴らしいプロジェクトだ。数日前に見たが、ワイヤの数が印象的だった
    数年間 PCB をリバースエンジニアリングしてきて、主に2〜4層基板を扱ってきたが、これは自分がどう解くか悩んでいた問題の一部だ。思いつく最善策は、3Dプリンタを寄せ集めて作るフライングプローブ装置だ。基本的には 1) 基板の表裏をスキャンし、2) テストポイントとパッドのリストを作り、3) 座標をフライングプローブシステムに入れてネットリストを生成する方式だ
    多層基板を処理する別の方法は、スキャン→サンディング→スキャン方式だ。グラウンドプレーン設計やガードトレースのような構造を正確に捉えられるので、個人的には最も正確だと思う。正確なアートワークを得られるが、発生する粉じんがかなり有害という欠点がある

    • Image→CAD データがあれば、工程を自動化するためにダイボンディング装置に近いものをざっくり作れそうだ。フライングプローブで導通全体をカバーするには両面に2つのヘッドが必要で、わずかな接触ずれや接触不良に対処するには、微小オフセットで何度も突くアルゴリズムも必要になる
      プローブヘッドの静電容量変化を監視して、接触品質を推定することもできる
    • リバースエンジニアリングしたPCB データで何ができるのか?動作する基板を1枚持っていて、それをリバースエンジニアリングして、最終的に自分で作れるようになるということ?
    • なぜ PCB をリバースエンジニアリングするのか?始めるときにどんな資料を参考にしたのかも気になる
    • スキャンした PCB レイヤーからネットリストを自動生成するツールはある?
  • 記事に出ていた PCB を素早く Openseadragon ビューアにしてみた: https://ha-norge.no/images/pcb_highres/highres_pcb.html
    124MB の JPG をダウンロードしなくても、スマホでフル解像度で見られる。画像は異なる解像度のレイヤーと非常に多くの小さな画像、45,000個以上で構成されている

    • 帯域幅の面で本当にありがたい。今後の基板スキャンにこういう方式を使いたいが、ホスティングインフラがない。OSD がオーバーレイに対応しているのは知っているし、OpenBoardView の機能を Web アプリとして提供できればすばらしいと思う
  • その通りだが、2,000本のワイヤをはんだ付けしたくはない。最後に基板を「プロとして」リバースエンジニアリングしたときは外部に出してCT スキャンを依頼し、点群データと表面抽出、ヒストグラム調整で特徴を見えるようにするインターフェースが入った自己実行プログラムを受け取った
    自分なら 3D プリンタのシャーシに自動プローブをいくつか取り付け、ビジョン/位置合わせ/従来型のコンピュータビジョンアルゴリズムを組み合わせる
    こういうものはすでに存在するが、オープンソース版があればいいと思う

    • この種の CT スキャンができるオープンソースの X 線装置を作ることは可能だろうか?
      可能であるべきに見えるが、線源と CCD 検出器について十分に知らないので、どう組み立てられるのか見当がつかない
  • ここで必要なはんだ付け作業量は常軌を逸している。同じ作業をはんだ付けなしで完全自動で行う産業用フライングプローブ装置はあるが、典型的な中国式リバースエンジニアリングは基板を1層ずつ削り取る方式だ: https://www.chinapcbcopy.com/pcb-reverse-engineering/
    中国企業はこのサービスを非常に低価格で提供しており、PCB 1枚あたり数百ドル程度だ
    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を出力し、2枚のボードを向かい合わせに直接取り付けることだ。ボードレベルのブレークアウトとして、ワイヤのはんだ付けを簡単にしたり、さらに進んでネットリスト抽出ハードウェアを直接統合したりできる
    [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と同じように、先にほのめかした発言のように、ライブ配信でかなり酔った状態で、基本的な人間としての品位に関する一般的な基準とは相容れない信念を説明したこともある