1 poin oleh GN⁺ 2024-02-26 | 1 komentar | Bagikan ke WhatsApp
  • Data boardview yang menggabungkan netlist yang diekstrak dari PCB rakitan logic board Nintendo Switch Lite dengan bentuk komponen/pad dan gambar referensi dua sisi telah dipublikasikan
  • Proses ini menggunakan panorama PCB 6.000 PPI, GUI untuk menempatkan data komponen/pad, serta PCB ekstraksi buatan sendiri yang memberi daya ke banyak pin secara berurutan dan membaca statusnya
  • Alur lengkapnya mencakup pemotretan dan penyelarasan dua sisi, pelepasan RF Shield, pelepasan dan klasifikasi komponen, pengukuran kontinuitas GND, pengelompokan net-fragment berdasarkan koneksi lapisan luar, pengkabelan PCB ekstraksi, lalu penggabungan fragment
  • Data yang dipublikasikan dapat dibuka di OpenBoardView sebagai Switch Lite Logic Board.bvr; karena rendering kompleks saat ini belum didukung OBV, kompatibilitas dengan FlexBV5 juga disediakan
  • Saat menafsirkan hasil, perlu memperhatikan ukuran besar sumber 6.000 PPI, kontaminasi pada panorama sisi atas, kemungkinan false-positive akibat sisa flux, serta kurangnya data pengukuran karakteristik listrik komponen

Data boardview Switch Lite yang dipublikasikan

  • Publikasi ini adalah hasil ekstraksi netlist dari logic board Nintendo Switch Lite yang sudah dirakit
  • Pada PCB, komponen disolder ke mounting pad yang terekspos, dan lapisan tembaga menghubungkan pad-pad tersebut untuk membentuk rangkaian listrik
  • Daftar lengkap koneksi antara pad dan komponen disebut netlist; jika bentuk komponen/pad digabungkan ke dalamnya, hasilnya menjadi boardview
  • Data akhir dikemas bersama boardview dan gambar referensi kedua sisi PCB

Cara membukanya di OpenBoardView

  • Unduh OpenBoardView terbaru
  • Data publik dapat diperoleh lewat Torrent atau Download
  • Ekstrak arsipnya, baca semua file .txt yang disertakan, lalu gunakan di OBV dengan urutan berikut
    • Di View, nonaktifkan Board Fill dan Part Fill
    • Di File, buka Switch Lite Logic Board.bvr
    • Klik kiri untuk memeriksa net komponen/pad, seret untuk berpindah, dan gunakan roda mouse untuk zoom in/out
    • Klik tengah atau Space untuk mengganti sisi board

Faktor yang memungkinkan ekstraksi netlist

  • Digunakan prosedur untuk membuat gambar panorama PCB rakitan pada 6.000 PPI dengan akurasi geometri dan warna yang tepat
  • Dipakai GUI point-and-click untuk menggambar data bentuk komponen/pad di atas panorama, dengan dukungan untuk menambah dan mengubah data secara bebas
  • PCB buatan sendiri dapat memberi daya ke jumlah pin sembarang satu per satu, lalu membaca status semua pin pada setiap langkah

Alur kerja sebenarnya

  • Beberapa gambar diambil lalu disatukan untuk membuat panorama sisi bawah
  • Board dibalik, RF Shield di-desolder, lalu panorama sisi atas juga disatukan
  • Kedua panorama dan gambar lain saling dibandingkan untuk semakin menyempurnakan akurasi geometri dan warna
  • Panorama yang sudah selesai dimuat ke GUI, lalu bentuk awal komponen/pad ditempatkan
  • Semua komponen di-desolder satu per satu dan dimasukkan ke posisi bin unik untuk analisis berikutnya
    • Posisi bin dan perkiraan reference designator dicatat di GUI
    • Jika ada perbedaan dengan bentuk pad yang dibuat pada langkah 2, bentuknya diperbaiki
  • Setelah semua pad terekspos dan tidak short, DMM digunakan dalam mode kontinuitas
    • Satu lead dihubungkan ke ground plane
    • Lead lainnya dipakai untuk probing semua pad di PCB
    • Hit dicatat di GUI dan digabungkan menjadi satu net
  • Pad yang tersisa dikelompokkan sebagai net-fragment berdasarkan koneksi yang terlihat di kedua lapisan luar
    • Jika tidak ada koneksi yang terlihat, pad dianggap sebagai fragment independen
  • Urutan wire yang disolder dari pin PCB ekstraksi ke net-fragment PCB target dicatat di GUI
  • Saat ekstraktor dijalankan, daya masuk dari pin PCB ekstraksi melalui wire ke net-fragment
    • Daya melewati koneksi tersembunyi di dalam PCB dan berpindah ke net-fragment lain
    • Kemudian kembali ke PCB ekstraksi melalui wire, dan hasil ini dicatat
    • Hasil yang dicatat digunakan untuk membuat pemetaan lengkap koneksi tersembunyi
  • Berdasarkan pemetaan ekstraktor, fragment digabungkan untuk membuat netlist final, lalu diekspor sebagai file boardview

Batasan data dan alat

  • Panorama asli 6.000 PPI masing-masing berukuran sekitar 0,5 gigapixel, sehingga menimbulkan berbagai masalah
  • Panorama 6.000 PPI disediakan lewat Torrent atau Download
  • Panorama top-side dan bottom-side dapat dilihat di ZoomHub
  • Outline komponen/pad mungkin terlihat sederhana

Bagian proses yang terlewat dan batas kualitas

  • Setelah pelepasan RF Shield dan sebelum tahap ekstraksi, idealnya ada pembersihan ultrasonik
  • Melepas RF Shield tanpa low-melt bismuth solder membutuhkan beberapa trik
  • Karena tidak memiliki ultrasonic cleaner, panorama sisi atas lebih kotor daripada sisi bawah
  • Jika sisa flux sebelum ekstraksi cukup konduktif, dapat muncul koneksi false-positive antar net-fragment
  • Di antara langkah 8 dan 9, ada tahap yang terlewat: mengeluarkan komponen dari bin dan mengukur karakteristik listriknya
    • Peralatan yang dimiliki hanya LCR Meter dasar dengan akurasi rendah
    • Jika diukur sekarang, datanya kemungkinan tidak lengkap dan kualitasnya relatif rendah

Tujuan proyek dan permintaan dukungan

  • Pembuatnya memiliki latar belakang bekerja lebih dari 10 tahun di Electronics Contract Manufacturing untuk bidang medis, aerospace, militer, dan industri
  • Lebih dari separuhnya dijalani sebagai SMT Process Technician, dengan pengalaman memiliki akses baca/tulis ke peralatan mahal
  • Proyek ini adalah eksperimen yang menggabungkan freelancing internet Work-From-Home dan penyolderan listrik terampil
  • Operasi bengkel reparasi, optimasi algoritme untuk pendapatan iklan, promosi affiliate link, atau penjualan ulang alat berkualitas rendah tidak sesuai dengan pekerjaan penyolderan yang menjadi tujuan
  • Jika data publik ini berguna atau ingin melihat lebih banyak, pembuatnya meminta donate
    • Dukungan akan digunakan untuk menambah lebih banyak perangkat, memangkas cycle time, meningkatkan kualitas, dan menyediakan lebih banyak data
    • Tujuannya adalah membuat seluruh prosedur dapat direproduksi melalui optimasi biaya, dokumentasi, dan open-sourcing

1 komentar

 
GN⁺ 2024-02-26
Komentar Hacker News
  • Saya tidak punya pengalaman langsung, tetapi dalam model pendanaannya, sepertinya ada kekhawatiran bahwa setelah hasil kerja dipublikasikan, pendapatan akan nyaris tidak ada karena pembajakan. Bisa dipertimbangkan cara mengumpulkan uang lebih dulu lewat crowdfunding, dan itu juga punya efek membuat orang secara alami memilih proyek yang paling mereka inginkan
    Model ini mirip dengan Empress, cracker Denuvo DRM yang terkenal buruk reputasinya. Ia dikenal sebagai, pada dasarnya, satu-satunya orang yang bisa membobol anti-cheat gim ini: https://en.m.wikipedia.org/wiki/Empress_(cracker)
    Ada cukup banyak kontroversi di sekitarnya, tetapi secara finansial tampaknya berjalan. Perlu juga dipikirkan untuk apa pekerjaan ini berguna, dan proposisi nilai apa yang diberikannya bagi orang lain. Misalnya, seperti konsol Wii yang dimodifikasi menjadi lebih kecil, segelintir orang yang ingin mendapatkan netlist dari rangkaian favorit mereka lalu mereproduksinya dengan ukuran lebih kecil, lebih banyak layer, dan teknik modern bisa merasakan nilai yang besar

    • Kemungkinan besar, cukup banyak orang yang mampu membobol Denuvo memang tidak ingin melakukannya
      Semua sudah bertambah usia, dan punya pekerjaan developer yang stabil serta bergaji bagus. Mereka bahkan tidak ingin menanggung risiko melanggar hukum. Periode 1987–2004 memang sangat menyenangkan, tetapi saya sudah 20 tahun tidak membuka IDA. Bab itu sudah tertutup, dan saya rasa bukan hanya saya yang begitu
      Dulu saya bisa melakukan disassembly Z80 di kepala. Sekarang saya hanya ingat bahwa C9 adalah RET, sisanya sudah lupa
    • Crowdfunding gaya bounty hunter mungkin yang ideal. Sepertinya kita bisa membuat seadanya perangkat lunak forum di mana tiap thread menjadi kampanye crowdfunding yang berbeda
    • Saya setuju dengan prosedur crowdfunding yang menargetkan rangkaian tertentu
      Ada banyak proyek yang akan bagus jika punya PCB baru untuk perangkat lama. Misalnya, ada komputer vintage yang rentan terhadap kerusakan kapasitor atau baterai, dan memang ada beberapa papan pengganti Mac, tetapi jelas itu hasil kerja penuh perhatian yang dibuat secara manual
      Hi-Fi klasik juga punya banyak board berumur 40 tahun dan material yang menurun kualitasnya. Misalnya, PCB dua sisi awal kadang dibuat dengan benar-benar mengecat layer kedua. Netlist yang akurat juga bisa membantu meningkatkan kualitas informasi skematik yang biasanya hanya berupa pindaian manual servis lama yang hampir tidak terbaca
  • Proyek yang luar biasa. Saya melihatnya beberapa hari lalu, dan jumlah kabelnya mengesankan
    Saya sudah beberapa tahun melakukan reverse engineering PCB, terutama menangani board 2–4 layer, dan ini adalah sebagian dari masalah yang sedang saya pikirkan cara memecahkannya. Ide terbaik yang terpikir adalah peralatan flying probe yang dirakit dari printer 3D. Pada dasarnya caranya adalah 1) memindai bagian atas dan bawah board, 2) membuat daftar test point dan pad, lalu 3) memasukkan koordinat ke sistem flying probe untuk menghasilkan netlist
    Cara lain menangani board multilayer adalah metode scan-sanding-scan. Menurut saya pribadi ini yang paling akurat, karena bisa menangkap dengan tepat struktur seperti desain ground plane dan guard trace. Kita bisa mendapatkan artwork yang akurat, tetapi kekurangannya debu yang dihasilkan cukup berbahaya

    • Jika ada data Image→CAD, sepertinya kita bisa membuat seadanya sesuatu yang mirip peralatan die bonding untuk mengotomatiskan prosesnya. Flying probe perlu dua head di kedua sisi agar bisa mencakup seluruh kontinuitas, dan juga perlu algoritma yang menusuk beberapa kali dengan offset mikro untuk menangani kontak yang sedikit meleset atau kontak buruk
      Bisa juga memantau perubahan kapasitansi pada probe head untuk menyimpulkan kualitas kontak
    • Apa yang bisa dilakukan dengan data PCB hasil reverse engineering? Apakah kita bisa punya satu board yang berfungsi, melakukan reverse engineering, lalu akhirnya membuatnya sendiri?
    • Mengapa melakukan reverse engineering PCB? Saya juga penasaran materi apa yang dijadikan rujukan saat memulai
    • Apakah ada alat yang menghasilkan netlist secara otomatis dari layer PCB yang dipindai?
  • Saya dengan cepat membuat PCB di artikel menjadi viewer Openseadragon: https://ha-norge.no/images/pcb_highres/highres_pcb.html
    Bisa dilihat dalam resolusi penuh di ponsel tanpa perlu mengunduh JPG 124 MB. Gambar terdiri dari layer dengan resolusi berbeda dan sangat banyak gambar kecil, lebih dari 45.000

    • Terima kasih banyak untuk bandwidth-nya. Saya ingin memakai cara seperti ini untuk pemindaian board ke depannya, tetapi tidak punya infrastruktur hosting. Saya tahu OSD mendukung overlay, dan akan keren kalau fitur OpenBoardView bisa disediakan sebagai webapp
  • Benar, tetapi saya tidak ingin menyolder 2 ribu kabel. Terakhir kali saya melakukan reverse engineering board secara “profesional”, saya mengirimnya ke pihak luar untuk CT scan, lalu menerima program mandiri berisi data point cloud, ekstraksi permukaan, dan antarmuka yang membuat fitur terlihat lewat penyesuaian histogram
    Kalau saya, saya akan memasang beberapa probe otomatis pada sasis printer 3D, lalu menggabungkan algoritma vision/alignment/computer vision tradisional
    Benda seperti ini sudah ada, tetapi saya berharap ada versi open source-nya

    • Apakah mungkin membuat peralatan sinar-X open source yang bisa melakukan CT scan semacam ini?
      Rasanya seharusnya mungkin, tetapi saya tidak cukup tahu tentang source dan detektor CCD, jadi tidak terbayang bagaimana cara merakitnya
  • Jumlah pekerjaan penyolderan yang dibutuhkan di sini gila. Ada peralatan flying probe industri yang melakukan pekerjaan yang sama secara sepenuhnya otomatis tanpa penyolderan, tetapi reverse engineering ala Tiongkok yang umum adalah mengikis board layer demi layer: https://www.chinapcbcopy.com/pcb-reverse-engineering/
    Perusahaan-perusahaan Tiongkok menyediakan layanan ini dengan harga sangat rendah, di kisaran ratusan dolar untuk satu 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/

    • “Reverse engineering PCB adalah teknologi riset terbalik yang menggunakan serangkaian teknik riset terbalik,” ya ampun
  • Sepertinya akan sangat bagus kalau ada hal seperti ini. Dalam beberapa bulan terakhir saya mencoba merekayasa balik antarmuka catu daya pada motherboard server Dell dan riser PCI-E pada motherboard Lenovo ThinkCentre, tetapi melakukannya secara manual terlalu menyakitkan, jadi saya hanya mengetahui beberapa koneksi dasar lalu hampir menyerah
    Saya tidak benar-benar tahu apa tujuannya. Ini tampaknya bisa menjadi proyek open-source yang luar biasa. Bahkan kalau ingin menghasilkan uang, menurut saya jauh lebih banyak nilai bisa diciptakan dari prosesnya daripada dari alat itu sendiri. Toh alatnya pada praktiknya mungkin hanya bisa dipakai dengan benar oleh pembuatnya sendiri
    Di komentar di bawah ada pembahasan tentang mengotomatisasi proses lebih jauh, seperti peralatan bonding, tetapi di area umum ini sudah ada banyak pekerjaan mekanis yang dilakukan di sisi printer 3D. Sepertinya bisa diadaptasi relatif mudah untuk probing

    • Tujuan awalnya adalah mencari tahu sampai tuntas bagaimana benar-benar menjalankan ide yang saya kira mungkin dilakukan. Tujuan saat ini lebih ke memperbaiki dan mengulanginya, sambil melihat seberapa besar minat pasar yang sebenarnya terhadap hal seperti ini
      Menurut saya sebagian besar nilainya ada pada teknologi pencitraan, dan itu bisa dengan mudah ditawarkan sebagai layanan kirim lewat pos. PCB extractor juga bisa diproduksi massal dan dijual dengan sedikit margin, sementara sisanya bisa dirilis sebagai open source
  • Saya penasaran apakah metode bed of nails bisa dipakai untuk menghilangkan kesulitan mekanis pada flying probe. Caranya dengan menempatkan ribuan probe pada grid beresolusi tertentu, lalu menghubungkannya ke backend matriks switch yang hampir sama dengan yang sudah dimiliki
    Khususnya benda seperti [1] mungkin punya resolusi yang cukup. Sekarang “probe” hanyalah pad di atas PCB sensor. Ini mengubah masalah mekanis menjadi masalah layout PCB berdensitas gila-gilaan, dan itu justru terdengar seperti bidang yang cocok
    Curing termal pada lapisan anisotropik memang merepotkan dan bisa menjadi solusi sekali pakai, tetapi kalau posisinya menjual board, itu tidak buruk
    Satu lagi konsep “bodoh tapi mungkin berhasil” adalah memakai pemindaian board untuk mencetak PCB kustom yang memiliki layout pad yang sama dalam bentuk cermin, lalu memasang kedua board langsung saling berhadapan. Semacam breakout level board, agar penyolderan kabel jadi mudah, atau bahkan lebih jauh lagi mengintegrasikan langsung hardware ekstraksi netlist
    [1] https://www.3m.com/3M/en_US/p/d/b5005076018/

    • Cara ini tidak skalabel
      Perangkat genggam modern sering memakai paket BGA berjarak 0,5mm. Pada resolusi ini, bahkan board 5×5cm yang relatif kecil pun membutuhkan setidaknya 100×100, yaitu 10 ribu probe per sisi. Kalau ukuran board membesar, jumlahnya meningkat secara kuadrat
      Cara yang jauh lebih mudah adalah peralatan flying probe dengan sejumlah kecil probe yang bisa bergerak cepat [1]. Tulisan itu juga menyebut opsi ini, tetapi mengesampingkannya karena biaya awal
      [1] https://en.wikipedia.org/wiki/Flying_probe
    • Saya suka ide terakhirnya, tapi bagaimana board-board itu dihubungkan? Solder ball? Hanya tekanan?
    • Saya memikirkan hal yang sama saat membaca tulisannya. Sepertinya probing bisa diotomatisasi cukup banyak
  • Metode brute force untuk menemukan koneksi tersembunyi itu sederhana tapi hebat. Saya tahu banyak pekerjaan reverse engineering hobi saat ini harus berjalan jauh lebih jauh, bersifat destruktif, dan perlu mengikis lapis demi lapis. Hasilnya bukan sekadar boardview sederhana, melainkan rekonstruksi 1:1, tetapi jelas akan makin sulit seiring bertambahnya layer PCB, terutama pada perangkat konsumen mutakhir

  • Benar-benar luar biasa. Penyolderan manualnya khususnya mengesankan; saya suka genre yang menanggapi “ini mustahil, kamu harus melakukannya ribuan kali” dengan “jadi saya melakukannya ribuan kali”
    Namun belakangan pick-and-place homebrew makin memungkinkan, jadi saya penasaran apakah ada cara praktis untuk memanfaatkannya. Tip pick-and-place yang mirip alat wire-wrap terdengar cukup masuk akal. Atau apakah ini lebih dekat ke bond wire pada chip, sehingga butuh presisi satu orde lebih tinggi?

    • Target terkecil di PCB ini berdiameter sekitar 0,2mm. Dari sudut pandang robotika presisi, itu masih cukup bisa dikelola. Dengan soldering iron robotik atau sistem solder laser yang diberi wire feeder dan cutter, orang bisa membuat semacam die bonder dasar yang menyolder kabel ke pad yang benar
      Karena latar belakang rekayasa proses, saya cenderung terlebih dahulu menemukan proses yang sangat manual tetapi bisa diotomatisasi, alih-alih langsung merancang proses yang sangat otomatis sejak awal
  • Akan bagus kalau meminta wawancara dengan Louis Rossmann dari YouTube untuk topik seperti hak untuk memperbaiki

    • Saya bukan penulis aslinya, tetapi hidup saya menjadi lebih baik semakin sedikit terpapar Louis “saya harus boleh memukul anak saya” Rossmann
      Rossmann itu semacam RMS dalam gerakan hak untuk memperbaiki. Banyak pemikirannya selaras dengan tujuan keseluruhan, tetapi saat ini ia memandang ranah hak untuk memperbaiki dengan cukup sempit, dan di luar itu ia punya pandangan yang cukup berbahaya sehingga menjadi figur perwakilan yang sangat buruk. Karena pernyataannya yang kasar tentang perempuan dan minoritas, ia benar-benar menjadi penghambat bagi sebagian aktivis hak untuk memperbaiki, dan ia juga tidak mengakui bahwa cakupan masalah ini meluas ke area tertentu. Misalnya, ia beberapa kali berkata di stream bahwa mesin pencuci piring adalah “benda sederhana yang tidak membutuhkan boardview bagi siapa pun”
      Mirip dengan RMS, seperti ucapan yang disinggung tadi, ia juga pernah menjelaskan di live stream, dalam keadaan sangat mabuk, keyakinan yang tidak begitu sesuai dengan standar umum tentang kepatutan dasar manusia