1.917 kabloyla Switch Lite boardview verisinin tersine mühendisliği
(usoldering.com)- Nintendo Switch Lite mantık kartının montajlı durumdaki PCB'sinden netlist çıkarıldı ve bileşen/pad şekilleriyle PCB'nin iki yüzüne ait referans görüntülerini birleştiren boardview verisi yayımlandı
- Çalışmada 6.000 PPI PCB panoramaları, bileşen ve pad verilerini üzerine yerleştiren bir GUI ve çok sayıda pini sırayla sürüp her adımda durumu okuyan özel yapım bir çıkarma PCB'si kullanıldı
- Tüm süreç; iki yüzün çekilip hizalanması, RF Shield'ın sökülmesi, bileşenlerin sökülüp sınıflandırılması, GND süreklilik ölçümü, dış katman bağlantılarına göre net-fragment gruplama ve çıkarma PCB'si kablolamasıyla fragment'ların birleştirilmesinden oluşuyor
- Yayımlanan veri OpenBoardView içinde
Switch Lite Logic Board.bvrolarak açılabiliyor; karmaşık render işlemleri şu anda OBV tarafından desteklenmediği için FlexBV5 uyumluluğu da sunuluyor - 6.000 PPI orijinal dosyaların büyük boyutu, üst yüz panoramasındaki kirlenme, flux kalıntılarının yol açabileceği false-positive olasılığı ve bileşenlerin elektriksel özellik ölçümlerine dair veri eksikliği sonuçları yorumlarken dikkat gerektiriyor
Yayımlanan Switch Lite boardview verisi
- Yayımlanan içerik, montajlı Nintendo Switch Lite mantık kartından netlist çıkarılmasının sonucu
- PCB üzerinde bileşenler açıkta duran mounting pad'lere lehimlenir ve bakır katmanlar pad'ler arasında elektriksel bağlantı kurarak devreyi oluşturur
- Pad'ler ile bileşenler arasındaki tüm bağlantı listesi netlisttir; buna bileşen ve pad şekilleri eklendiğinde boardview oluşur
- Nihai veri, boardview ile PCB'nin iki yüzüne ait referans görüntülerin birlikte paketlenmiş halidir
OpenBoardView'da nasıl açılır
- En güncel OpenBoardView sürümünü indirin
- Yayımlanan veriyi Torrent veya Download üzerinden alın
- Arşivi açın, içindeki tüm
.txtdosyalarını okuyun ve ardından OBV içinde şu sırayı izleyinViewmenüsünde Board Fill ve Part Fill seçeneklerini devre dışı bırakınFilemenüsündenSwitch Lite Logic Board.bvrdosyasını açın- Sol tıklamayla bileşen ve pad net'lerini inceleyin, sürükleyerek gezin ve fare tekerleğiyle yakınlaştırıp uzaklaştırın
- Orta tık veya Space ile kart yüzünü değiştirin
Netlist çıkarmayı mümkün kılan unsurlar
- 6.000 PPI çözünürlükte montajlı PCB'nin geometrik ve renk doğruluğu yüksek panoramik görüntülerini üretmeye yönelik bir süreç kullanıldı
- Panorama üzerine bileşen ve pad şekli verilerini çizen bir point-and-click GUI kullanılıyor; ayrıca keyfi veri ekleme ve düzenleme de destekleniyor
- Özel üretim PCB, istenen sayıda pini teker teker enerjilendirip her adımda tüm pinlerin durumunu okuyabiliyor
Gerçek çalışma akışı
- Birden fazla görüntü çekilerek alt yüz panoraması stitching ile oluşturuluyor
- Kart çevrilip RF Shield desolder edildikten sonra üst yüz panoraması da stitching ile oluşturuluyor
- İki panorama ve diğer görüntüler karşılaştırılarak geometrik ve renk doğruluğu daha da rafine ediliyor
- Tamamlanan panoramalar GUI'ye aktarılıyor ve ilk bileşen/pad şekilleri yerleştiriliyor
- Tüm bileşenler tek tek desolder edilip daha sonra analiz edilmek üzere kendilerine özgü bin konumlarına yerleştiriliyor
- Bin konumu ve tahmini reference designator GUI'ye kaydediliyor
-
- adımda oluşturulan pad şekillerinde fark varsa düzeltiliyor
- Tüm pad'ler açıkta ve kısa devre yapmıyorken DMM süreklilik modunda kullanılıyor
- Bir prob ground plane'e bağlanıyor
- Diğer probla PCB üzerindeki tüm pad'ler probing yapılarak kontrol ediliyor
- Tespit edilenler GUI'ye kaydediliyor ve tek bir net altında birleştiriliyor
- Kalan pad'ler, her iki dış katmanda görülebilen bağlantılara göre net-fragment olarak gruplandırılıyor
- Görünür bağlantı yoksa bağımsız fragment kabul ediliyor
- Çıkarma PCB'si pinlerinden hedef PCB'nin net-fragment'larına lehimlenen wire sırası GUI'ye kaydediliyor
- Çıkarıcı çalıştırıldığında güç, çıkarma PCB'si pinlerinden wire üzerinden net-fragment'lara giriyor
- PCB içindeki gizli bağlantılardan geçerek başka net-fragment'lara ulaşıyor
- Ardından tekrar wire üzerinden çıkarma PCB'sine dönüyor ve bu sonuç kaydediliyor
- Kaydedilen sonuç, tüm gizli bağlantıların haritasını çıkarmak için kullanılıyor
- Çıkarıcı eşlemesine göre fragment'lar birleştirilerek tamamlanmış netlist oluşturuluyor ve boardview dosyası olarak dışa aktarılıyor
Veri ve araçların kısıtları
- Orijinal 6.000 PPI panoramaların her biri 0,5 gigapiksel ölçeğinde olduğu için çeşitli sorunlar ortaya çıkıyor
- 6.000 PPI panoramalar Torrent veya Download ile sağlanıyor
- ZoomHub üzerinden top-side ve bottom-side panoramalarına bakılabiliyor
- Bileşen ve pad outline'ları basit görünebilir
- Karmaşık render özellikleri şu anda OpenBoardView tarafından desteklenmiyor
- Ancak verinin kendisi dosyada yer alıyor
- Dosya, premium closed-source fork olan FlexBV5 ile de uyumlu
Süreçte eksik kalan adımlar ve kalite sınırları
- RF Shield söküldükten sonra ve çıkarma öncesi aşama arasında ultrasonik temizlik yapılması tercih edilir
- low-melt bismuth solder olmadan RF Shield'ı sökmek için çeşitli püf noktaları gerekir
- Ultrasonik temizleyici olmadığı için üst yüz panoraması alt yüzden daha kirli
- Çıkarma öncesinde flux kalıntıları yeterince iletken hale gelirse net-fragment'lar arasında false-positive bağlantılar oluşabilir
-
- ve 9. adımlar arasında, bin'lere yerleştirilen bileşenlerin çıkarılıp elektriksel özelliklerinin ölçülmesi adımı eksik
- Mevcut ekipman temel seviyede ve hassasiyeti düşük bir LCR Meter
- Şu an ölçülürse görece düşük kaliteli ve eksik veri ortaya çıkabilir
Projenin amacı ve destek çağrısı
- Üreticinin tıbbi, havacılık, askeri ve endüstriyel alanlarda Electronics Contract Manufacturing tarafında 10 yılı aşkın çalışma geçmişi var
- Bunun yarısından fazlası, pahalı ekipmanlara okuma-yazma erişimi olan bir SMT Process Technician olarak geçmiş
- Bu proje, Work-From-Home internet freelancing ile ileri düzey elektrik lehimleme becerisini birleştiren bir deney
- Tamir dükkânı işletmek, reklam geliri algoritmalarına oynama yapmak, affiliate link tanıtımı veya düşük kaliteli araçları yeniden satmak hedeflenen lehimleme işiyle uyuşmuyor
- Yayımlanan veri faydalıysa veya daha fazlasını görmek istiyorsanız donate çağrısı yapılıyor
- Destekle daha fazla cihaz ekleme, cycle time'ı kısaltma, kaliteyi artırma ve daha fazla veri sunma hedefleniyor
- Maliyet optimizasyonu, dokümantasyon ve açık kaynaklaştırma ile tüm süreci yeniden üretilebilir hale getirme amacı bulunuyor
1 yorum
Hacker News yorumları
Doğrudan deneyimim yok ama finansman modelinde, çalışmayı yayımladıktan sonra korsan kopyalama yüzünden neredeyse hiç gelir elde edememekten endişe ediyorlar gibi görünüyor. Bunun yerine parayı önce kitle fonlaması ile toplamayı düşünebilirler; bu aynı zamanda insanların en çok istedikleri projelere doğal olarak oy vermesi etkisini de yaratır.
Bu model, kötü şöhretli Denuvo DRM kırıcı Empress’e benziyor. Fiilen bu oyun anti-cheat’ini kırabilen tek kişi olarak biliniyor: https://en.m.wikipedia.org/wiki/Empress_(cracker)
Etrafında epey tartışma var ama finansal olarak işliyor gibi görünüyor. Ayrıca bu işin nerede işe yarayacağını ve başkalarına nasıl bir değer önerisi sunduğunu da düşünmek gerekir. Örneğin küçültülerek modifiye edilmiş Wii konsollarında olduğu gibi, sevdikleri bir devrenin netlist’ini alıp onu daha küçük boyutta, daha fazla katmanla ve modern tekniklerle yeniden üretmek isteyen az sayıdaki kişi için çok büyük değer taşıyabilir.
Herkes yaşlandı ve istikrarlı, iyi maaşlı geliştirici işlerinde çalışıyor. Yasayı ihlal etme riskini bile almak istemiyorlar. 1987–2004 dönemi gerçekten çok eğlenceliydi ama 20 yıldır IDA’yı açmış değilim. O sayfa kapandı; sanırım yalnız da değilim.
Bir zamanlar Z80’i kafamda tersine disassemble edebiliyordum. Şimdi yalnızca C9’un RET olduğunu hatırlıyorum, geri kalanını unuttum.
Eski cihazlar için yeni PCB’lerin faydalı olacağı pek çok proje var. Örneğin kapasitör veya pil hasarına yatkın vintage bilgisayarlar var; Mac yedek kartları da birkaç tane mevcut ama bunların açıkça emek verilmiş, el yapımı sevgi projeleri olduğu belli.
Klasik Hi-Fi tarafında da 40 yıllık kartlar ve bozulan malzemeler çok. Örneğin erken dönem çift yüzlü PCB’lerde ikinci katman bazen kelimenin tam anlamıyla boyanarak yapılmış olabiliyor. Doğru bir netlist, çoğu zaman ancak zar zor okunabilen eski servis kılavuzu taramalarındaki şematik bilgilerin kalitesini artırmaya da yardımcı olabilir.
Harika bir proje. Birkaç gün önce görmüştüm; tel sayısı etkileyiciydi.
Birkaç yıldır PCB tersine mühendisliği yapıyorum ve çoğunlukla 2–4 katmanlı kartlarla uğraştım; bu da nasıl çözeceğimi düşündüğüm problemin bir parçası. Aklıma gelen en iyi çözüm, 3D yazıcıdan devşirilmiş bir flying probe düzeneği. Temelde 1) kartın üstünü ve altını taramak, 2) test noktaları ve pad’lerin listesini çıkarmak, 3) koordinatları flying probe sistemine verip netlist üretmek şeklinde.
Çok katmanlı kartları işlemenin diğer yolu tarama-zımparalama-tarama yöntemi. Toprak düzlemi tasarımları ve guard trace gibi yapıları doğru yakaladığı için kişisel olarak en doğru yöntem olduğunu düşünüyorum. Doğru artwork elde edebilirsiniz ama ortaya çıkan tozun epey zararlı olması gibi bir dezavantajı var.
Prob kafasının kapasitansındaki değişimi izleyerek temas kalitesi de çıkarılabilir.
Makaledeki PCB için hızlıca bir Openseadragon görüntüleyici yaptım: https://ha-norge.no/images/pcb_highres/highres_pcb.html
124 MB’lık JPG’yi indirmeden telefonda tam çözünürlükte görüntülenebiliyor. Görsel, farklı çözünürlüklerdeki katmanlardan ve çok sayıda küçük görselden, 45.000’den fazlasından oluşuyor.
Doğru ama 2 bin tel lehimlemek istemem. En son bir kartı “profesyonel olarak” tersine mühendislik ettiğimde dışarıya gönderip CT taraması yaptırmıştım; nokta bulutu verisi, yüzey çıkarımı ve histogram ayarıyla özellikleri görünür kılan bir arayüz içeren bağımsız çalıştırılabilir bir program almıştım.
Ben olsam bir 3D yazıcı şasisine birkaç otomatik prob takar; görüntüleme/hizalama/geleneksel bilgisayarlı görü algoritmalarının bir kombinasyonunu kullanırdım.
Bu tür şeyler zaten var ama açık kaynak bir sürümü olsa iyi olurdu.
Mümkün olması gerekiyormuş gibi görünüyor ama kaynaklar ve CCD dedektörler hakkında nasıl birleştirilebileceğini kavrayacak kadar bilgim yok.
Buradaki lehimleme iş yükü delilik. Aynı işi lehim gerektirmeden tamamen otomatik yapan endüstriyel flying probe ekipmanları var ama tipik Çin tarzı tersine mühendislik, kartı katman katman aşındırma yöntemidir: https://www.chinapcbcopy.com/pcb-reverse-engineering/
Çinli firmalar bu hizmeti çok düşük fiyatlara sunuyor; bir PCB için birkaç yüz dolar seviyesinde.
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/
Böyle bir şey olsaydı gerçekten harika olurdu gibi geliyor. Son birkaç ayda bir Dell sunucu anakartının güç besleme arayüzünü ve bir Lenovo ThinkCentre anakartının PCI-E riser’ını tersine mühendislikle çözmeye çalıştım; elle yapmak o kadar acı vericiydi ki sadece birkaç temel bağlantıyı anlayıp neredeyse vazgeçtim.
Hedefin ne olduğundan pek emin değilim. Bu harika bir açık kaynak proje olur gibi. Para kazanmak isteseniz bile, bence aracın kendisinden çok süreçte çok daha fazla değer yaratılabilir. Çünkü aracı zaten pratikte doğru düzgün yalnızca siz kullanabileceksiniz.
Aşağıdaki yorumlarda bonding ekipmanı gibi süreci daha fazla otomatikleştirmekten bahsedilmiş; bu genel alanda mekanik işlerin büyük kısmı 3D yazıcı tarafında zaten yapılmış durumda. Probing için nispeten kolayca uyarlanabilir gibi görünüyor.
Değerin büyük kısmının görüntüleme teknolojisinde olduğunu düşünüyorum ve bu posta yoluyla kabul edilen bir hizmet olarak kolayca sunulabilir. Extractor PCB’leri de seri ürettirip küçük bir kâr marjıyla satabilir, geri kalanını açık kaynak olarak yayımlayabilirsiniz.
Flying probe’un mekanik zorluklarını ortadan kaldırmak için bed of nails yöntemi kullanılıp kullanılamayacağını merak ediyorum. Belirli bir çözünürlükteki ızgaraya binlerce prob yerleştirip bunları, zaten sahip olduğunuzla neredeyse aynı bir switch matrix backend’ine bağlamak gibi.
Özellikle [1] gibi bir şeyin çözünürlüğü yeterli olabilir. Bu durumda “prob” yalnızca algılama PCB’si üzerindeki bir pad olur. Böylece mekanik problem çılgın derecede yüksek yoğunluklu bir PCB yerleşim problemine dönüşür; bu da tam uygun bir alan gibi geliyor.
Anizotropik katmanın ısıyla kürlenmesi zahmetli olabilir ve tek kullanımlık bir çözüm haline gelebilir, ama kart satan tarafsanız fena değil.
Bir diğer “aptalca ama belki çalışır” fikir de kart taramasını kullanarak aynı pad yerleşiminin ayna görüntüsüne sahip özel bir PCB bastırmak ve iki kartı yüz yüze doğrudan monte etmek. Kart düzeyinde bir breakout olur; kablo lehimlemeyi kolaylaştırabilir ya da daha da ileri gidip netlist çıkarma donanımını doğrudan entegre edebilir.
[1] https://www.3m.com/3M/en_US/p/d/b5005076018/
Modern mobil cihazlar sık sık 0,5 mm aralıklı BGA paketleri kullanıyor. Bu çözünürlükte, görece küçük bir 5×5 cm kart bile her yüz için en az 100×100, yani 10 bin prob gerektirir. Kart boyutu büyüdükçe sayı karesel olarak artar.
Çok daha kolay yöntem, hızlı hareket edebilen az sayıda proba sahip flying probe ekipmanıdır [1]. Yazıda da bu seçenekten bahsediliyor, ancak başlangıç maliyeti nedeniyle elenmiş.
[1] https://en.wikipedia.org/wiki/Flying_probe
Gizli bağlantıları bulmak için brute-force yaklaşımı basit ama harika. Günümüzde hobi amaçlı tersine mühendislik işlerinin önemli bir kısmının çok daha ileri gitmesi gerektiğini; yıkıcı olduğunu ve katman katman zımparalama/aşındırma gerektirdiğini biliyorum. Sonuçta basit bir boardview değil, 1:1 yeniden inşa çıkıyor; fakat PCB katman sayısı arttıkça, özellikle de en yeni tüketici cihazlarında bunun giderek zorlaşacağı kesin.
Gerçekten muazzam. Özellikle elle lehimleme etkileyici; “bu imkânsız, bunu binlerce kez yapmak gerekiyor” denmesine karşı “o yüzden binlerce kez yaptım” diye ilerleyen işleri seviyorum.
Yine de bugünlerde ev yapımı pick-and-place giderek daha mümkün hale geliyor; bundan yararlanmanın pratik bir yolu olup olmadığını merak ediyorum. Wire-wrap aracına benzeyen bir pick-and-place ucu mantıklı görünebilir. Yoksa bu, çiplerin bond wire’larına daha yakın olduğu için bir basamak daha fazla hassasiyet gerektiren bir iş mi?
Süreç mühendisliği geçmişim nedeniyle, baştan çok otomatikleştirilmiş bir süreç yerine önce otomatikleştirilebilir ama oldukça manuel bir süreç bulmaya meylettim.
Onarım hakkı gibi konular için YouTube’dan Louis Rossmann’dan röportaj istemek iyi olabilir.
Rossmann, onarım hakkı hareketinin RMS’i gibi. Genel hedefle örtüşen birçok fikri var, ama bugün onarım hakkı sahnesine oldukça dar bir pencereden bakıyor ve bunun dışında da temsilci figür olmak için onu en kötü seçenek yapan epey tehlikeli görüşleri var. Kadınlar ve azınlıklar hakkındaki sert sözleri nedeniyle bazı onarım hakkı aktivistleri için fiilen bir engel haline geldi; ayrıca sorunun kapsamının hangi alanlara kadar genişlediğini de kabul etmiyor. Örneğin yayınlarında birkaç kez bulaşık makinelerinin “kimsenin boardview’e ihtiyaç duymadığı basit şeyler” olduğunu söyledi.
RMS’e benzer şekilde, yukarıda ima edilen sözlerde olduğu gibi, canlı yayında çok sarhoşken temel insani nezaketin alışıldık ölçütleriyle pek bağdaşmayan inançlarını açıkladığı da oldu.