1,917 तारों से Switch Lite boardview की reverse engineering
(usoldering.com)- Nintendo Switch Lite logic board के assembled PCB से netlist extract की गई है, और components/pad shapes व दोनों sides की reference images को मिलाकर बनाया गया boardview data जारी किया गया है
- काम में 6,000 PPI PCB panorama, components/pads data overlay करने वाला GUI, और कई pins को क्रम से drive कर उनकी state पढ़ने वाला custom extraction PCB साथ में इस्तेमाल हुआ
- पूरी प्रक्रिया में दोनों sides की photography और alignment, RF Shield हटाना, components desolder और classify करना, GND continuity measurement, outer-layer connections के आधार पर net-fragment grouping, extraction PCB wiring और fragments merge करना शामिल है
- जारी data को OpenBoardView में
Switch Lite Logic Board.bvrके रूप में खोला जा सकता है; complex rendering अभी OBV में supported नहीं है, इसलिए FlexBV5 compatibility भी दी गई है - 6,000 PPI originals का बड़ा file size, top-side panorama contamination, flux residue की वजह से false-positive की संभावना, और components की electrical characteristics measurement data की कमी—results interpret करते समय इन बातों पर ध्यान देना जरूरी है
जारी किया गया Switch Lite boardview data
- यह release assembled Nintendo Switch Lite logic board से netlist extract करने का result है
- PCB में components exposed mounting pads पर solder किए जाते हैं, और copper layers pads के बीच connection बनाकर electrical circuit बनाती हैं
- pads और components के बीच connections की पूरी list netlist होती है; इसमें components/pad shapes जोड़ने पर boardview बनता है
- final data boardview और PCB की दोनों sides की reference images को साथ bundle किए हुए format में है
OpenBoardView में खोलने का तरीका
- latest OpenBoardView download करें
- released data Torrent या Download से मिल सकता है
- archive extract करें, included सभी
.txtfiles पढ़ें, फिर OBV में इस क्रम से इस्तेमाल करेंViewमें Board Fill और Part Fill disable करेंFileमेंSwitch Lite Logic Board.bvrखोलें- left click से component/pad nets देखें, drag करके move करें, और mouse wheel से zoom in/out करें
- middle click या Space से board side switch करें
netlist extraction संभव बनाने वाले तत्व
- 6,000 PPI पर assembled PCB की geometric और color accuracy सही रखने वाली panorama images बनाने की process इस्तेमाल की गई
- panorama पर component/pad shape data draw करने वाला point-and-click GUI इस्तेमाल हुआ, जो arbitrary data add और edit करना भी support करता है
- custom-built PCB किसी भी संख्या में pins को एक-एक करके power दे सकता है, और हर step पर सभी pins की state read कर सकता है
वास्तविक workflow
- कई images capture करके bottom side panorama stitch किया गया
- board को पलटा गया, RF Shield desolder किया गया, फिर top side panorama भी stitch किया गया
- दोनों panoramas और दूसरी images को cross-compare करके geometric और color accuracy और refine की गई
- तैयार panorama को GUI में import कर initial component/pad shapes place किए गए
- सभी components को एक-एक करके desolder किया गया, और बाद की analysis के लिए unique bin locations में रखा गया
- bin location और estimated reference designator GUI में record किए गए
- अगर step 2 में बनाए pad shapes में अंतर दिखा, तो उन्हें correct किया गया
- सभी pads exposed और non-shorted होने की state में DMM को continuity mode में इस्तेमाल किया गया
- एक lead ground plane से connect की गई
- दूसरी lead से PCB के सभी pads probe किए गए
- hits GUI में record किए गए और एक net में merge किए गए
- बाकी pads को दोनों outer layers पर दिखने वाले connections के आधार पर net-fragment में group किया गया
- अगर visible connection नहीं था, तो उसे independent fragment माना गया
- extraction PCB pins से target PCB के net-fragments तक solder किए गए wires का order GUI में record किया गया
- extractor run करने पर power extraction PCB pin से wire के जरिए net-fragment में जाती है
- PCB के अंदर hidden connection से गुजरकर दूसरे net-fragment तक जाती है
- फिर wire के जरिए वापस extraction PCB में लौटती है, और यह result record होता है
- recorded result hidden connections की complete mapping बनाने में इस्तेमाल होता है
- extractor mapping के आधार पर fragments merge कर complete netlist बनाई गई, और boardview file के रूप में export किया गया
data और tools की limitations
- original 6,000 PPI panoramas हर एक करीब 0.5 gigapixel size के हैं, जिससे कई issues आते हैं
- 6,000 PPI panoramas Torrent या Download से दिए गए हैं
- ZoomHub पर top-side और bottom-side panoramas देखे जा सकते हैं
- components/pads outlines simple shapes जैसे दिख सकते हैं
- complex rendering feature फिलहाल OpenBoardView में supported नहीं है
- data खुद included है
- file premium closed-source fork FlexBV5 के साथ भी compatible है
process में छूटे हिस्से और quality limitations
- RF Shield हटाने के बाद और extraction से पहले वाले चरण के बीच ultrasonic cleaning होना बेहतर है
- low-melt bismuth solder के बिना RF Shield हटाने के लिए कई tricks की जरूरत होती है
- ultrasonic cleaner न होने से top-side panorama bottom-side से ज्यादा गंदा है
- extraction से पहले अगर flux residue पर्याप्त conductive हो, तो net-fragments के बीच false-positive connections बन सकते हैं
- steps 8 और 9 के बीच bin में रखे components निकालकर उनकी electrical characteristics measure करने वाला step missing है
- उपलब्ध equipment basic और low-accuracy LCR Meter है
- अभी measure करने पर comparatively low-quality और incomplete data बन सकता है
project का उद्देश्य और support request
- maker का background medical, aerospace, military और industrial sectors के Electronics Contract Manufacturing में 10+ साल का है
- इनमें से आधे से ज्यादा समय SMT Process Technician के रूप में था, जहां expensive equipment पर read/write access का experience रहा
- यह project Work-From-Home internet freelancing और skilled electrical soldering को combine करने का experiment है
- repair shop चलाना, ad revenue के लिए algorithms handle करना, affiliate links promote करना, या low-quality tools resell करना—ये सब targeted soldering work से मेल नहीं खाते
- अगर released data उपयोगी लगे या आप और देखना चाहते हों, तो donate का अनुरोध है
- support से और devices जोड़ना, cycle time घटाना, quality improve करना, और ज्यादा data provide करना संभव होगा
- cost optimization, documentation और open-sourcing के जरिए पूरी process को reproducible बनाने का goal है
1 टिप्पणियां
Hacker News की राय
मेरा प्रत्यक्ष अनुभव नहीं है, लेकिन funding model में लगता है कि लोग इस बात से चिंतित हैं कि काम public करने के बाद piracy की वजह से कमाई लगभग न हो। इसके बजाय पहले crowdfunding से पैसे जुटाने का तरीका सोचा जा सकता है, और इससे यह असर भी होगा कि लोग स्वाभाविक रूप से उन projects के लिए vote करेंगे जिन्हें वे सबसे ज़्यादा चाहते हैं
यह model कुख्यात Denuvo DRM cracker Empress जैसा है। कहा जाता है कि असल में वही अकेला व्यक्ति है जो इस game anti-cheat को crack कर सकता है: https://en.m.wikipedia.org/wiki/Empress_(cracker)
उसके आसपास विवाद तो काफी हैं, लेकिन आर्थिक रूप से यह चलता हुआ दिखता है। यह भी सोचने लायक है कि यह काम किस काम आ सकता है और दूसरों के लिए इसका value proposition क्या है। उदाहरण के लिए, छोटे आकार में mod किए गए Wii console की तरह, कुछ लोग जिन्हें अपने पसंदीदा circuit की netlist लेकर उसे छोटे आकार, अधिक layers और modern techniques के साथ फिर से बनाना है, इसमें बड़ी value देख सकते हैं
सबकी उम्र हो गई है, और उनके पास स्थिर, अच्छी salary वाली developer jobs हैं। वे कानून तोड़ने का जोखिम तक नहीं लेना चाहते। 1987~2004 वाकई मजेदार था, लेकिन मैंने 20 साल से IDA खोला तक नहीं। वह अध्याय बंद हो चुका है, और मुझे लगता है मैं अकेला नहीं हूं
कभी मैं दिमाग में ही Z80 को disassemble कर सकता था। अब बस इतना याद है कि C9, RET था; बाकी सब भूल गया
पुराने devices के लिए नए PCB हों तो कई अच्छे projects हो सकते हैं। उदाहरण के लिए ऐसे vintage computers हैं जो capacitor या battery damage के प्रति vulnerable हैं, और Mac replacement boards भी कुछ हैं, लेकिन वे साफ़ तौर पर हाथ से बनाए गए, प्यार से किए गए काम हैं
Classic Hi-Fi में भी 40 साल पुराने boards और खराब होते materials बहुत हैं। उदाहरण के लिए शुरुआती double-sided PCB में second layer को सचमुच paint करके बनाया गया होता था। सटीक netlist उन circuits की schematic जानकारी की quality बढ़ाने में भी मदद कर सकती है, जिनके बारे में अक्सर मुश्किल से पढ़े जाने वाले पुराने service manual scans ही उपलब्ध होते हैं
शानदार project है। कुछ दिन पहले देखा था, और wires की संख्या impressive थी
मैं कई सालों से PCB reverse engineering कर रहा हूं, ज्यादातर 2~4 layer boards पर काम किया है, और यह उसी problem का हिस्सा है जिसे हल करने के बारे में मैं सोच रहा था। मेरे दिमाग में सबसे अच्छा तरीका 3D printer को जोड़-तोड़कर बनाई गई flying probe machine है। मूल रूप से तरीका होगा: 1) board के ऊपर और नीचे scan करना, 2) test points और pads की list बनाना, और 3) coordinates को flying probe system में डालकर netlist generate करना
Multilayer boards को handle करने का दूसरा तरीका scan-sanding-scan method है। Ground plane design और guard trace जैसी structures को यह ठीक-ठीक पकड़ता है, इसलिए निजी तौर पर मुझे यह सबसे accurate लगता है। इससे accurate artwork मिल सकता है, लेकिन downside यह है कि इससे निकलने वाली dust काफी harmful होती है
Probe head की capacitance में बदलाव monitor करके contact quality का अनुमान भी लगाया जा सकता है
Article में आए PCB को जल्दी से Openseadragon viewer में बना दिया: https://ha-norge.no/images/pcb_highres/highres_pcb.html
124MB JPG download किए बिना भी phone पर full resolution में देखा जा सकता है। Image अलग-अलग resolution की layers और बहुत सारी छोटी images, 45,000 से ज़्यादा, से मिलकर बनी है
बात सही है, लेकिन मैं 2 हजार wires solder नहीं करना चाहूंगा। पिछली बार जब मैंने किसी board को “professionally” reverse engineer किया था, तो उसे बाहर भेजकर CT scan करवाया था, और बदले में point cloud data, surface extraction, और histogram adjustment के जरिए features दिखाने वाला interface शामिल एक self-executing program मिला था
मैं होता तो 3D printer chassis पर कुछ automated probes लगाता, और vision/alignment/traditional computer vision algorithms का combination इस्तेमाल करता
ऐसी चीज़ें पहले से मौजूद हैं, लेकिन काश इसका open source version होता
संभव होना चाहिए ऐसा लगता है, लेकिन source और CCD detector के बारे में मुझे इतना नहीं पता कि इसे कैसे assemble किया जा सकता है
यहां जितना soldering work चाहिए, वह पागलपन है। Industrial flying probe machines हैं जो यही काम बिना soldering के पूरी तरह automatically करती हैं, लेकिन typical Chinese-style reverse engineering में board को layer by layer grind किया जाता है: https://www.chinapcbcopy.com/pcb-reverse-engineering/
Chinese companies यह service बहुत कम कीमत पर देती हैं, PCB के लिए कुछ सौ dollars के स्तर पर
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/
काश ऐसा कुछ सच में होता। पिछले कुछ महीनों में मैंने Dell सर्वर motherboard के power supply interface और Lenovo ThinkCentre motherboard के PCI-E riser को reverse engineer करने की कोशिश की, लेकिन हाथ से करना इतना दर्दनाक था कि बस कुछ basic connections समझकर लगभग छोड़ ही दिया
लक्ष्य क्या है, मुझे ठीक-ठीक नहीं पता। यह एक शानदार open source project बन सकता है। अगर पैसे कमाने हों तब भी, मेरी राय में tool के बजाय process में कहीं ज़्यादा value बनाई जा सकती है। tool तो वैसे भी असल में शायद आप ही ठीक से इस्तेमाल कर पाएँगे
नीचे comments में bonding equipment की तरह process को और automate करने की बात हुई है, लेकिन इस general area में mechanical काम का काफी हिस्सा 3D printer side पर पहले ही हो चुका है। probing के लिए इसे अपेक्षाकृत आसानी से adapt किया जा सकता है
मुझे लगता है value का ज़्यादातर हिस्सा imaging technology में है, और इसे mail-in service के रूप में आसानी से दिया जा सकता है। extractor PCB को भी mass produce करके थोड़ा margin जोड़कर बेचा जा सकता है, और बाकी सब open source कर सकते हैं
Flying probe की mechanical कठिनाइयाँ हटाने के लिए क्या bed-of-nails approach इस्तेमाल की जा सकती है, यह सोच रहा हूँ। किसी fixed resolution की grid में हजारों probes लगाकर, उन्हें लगभग उसी switch matrix backend से जोड़ने जैसा जो आपके पास पहले से है
खासकर [1] जैसी चीज़ का resolution शायद पर्याप्त हो। अब “probe” बस sensing PCB पर एक pad होगा। इससे mechanical problem पागलपन वाली high-density PCB layout problem में बदल जाती है, और यह उल्टा एक अच्छी fit लगती है
anisotropic layer की thermal curing झंझट भरी और single-use solution हो सकती है, लेकिन अगर आप boards बेच रहे हैं तो बुरा नहीं
एक और “बेवकूफाना, पर शायद चल जाए” concept यह है कि board scan का उपयोग करके उसी pad layout वाली mirror-image custom PCB print करें, और दोनों boards को आमने-सामने सीधे mount कर दें। board-level breakout की तरह, जिससे wire soldering आसान हो या आगे चलकर netlist extraction hardware को सीधे integrate किया जा सके
[1] https://www.3m.com/3M/en_US/p/d/b5005076018/
modern handheld devices अक्सर 0.5mm pitch वाले BGA package इस्तेमाल करते हैं। इस resolution पर अपेक्षाकृत छोटा 5×5cm board भी हर side के लिए कम से कम 100×100, यानी 10,000 probes मांगता है। board size बढ़ने पर count square के हिसाब से बढ़ता है
कहीं आसान तरीका है थोड़े से probes वाला flying probe equipment, जो तेज़ी से move कर सके [1]। लेख में यह option भी mention है, लेकिन initial cost की वजह से इसे अलग रखा गया है
[1] https://en.wikipedia.org/wiki/Flying_probe
hidden connections खोजने का brute-force तरीका simple है, लेकिन शानदार है। मुझे पता है कि आजकल hobby reverse engineering में काफी काम को इससे बहुत आगे जाना पड़ता है, वह destructive होता है, और layers को अलग-अलग grind करना पड़ता है। उससे simple boardview नहीं बल्कि 1:1 reconstruction मिलता है, लेकिन PCB layers बढ़ने पर, खासकर cutting-edge consumer devices में, यह साफ है कि काम लगातार कठिन होता जाएगा
सच में कमाल है। खासकर hand soldering impressive है; मुझे वह genre पसंद है जिसमें “यह असंभव है, यह तो हजारों बार करना पड़ेगा” के जवाब में “तो हमने हजारों बार किया” कहकर आगे बढ़ जाते हैं
हालांकि आजकल homebrew pick-and-place धीरे-धीरे संभव हो रहा है, इसलिए सोचता हूँ कि इसका उपयोग करने का कोई practical तरीका होगा क्या। wire-wrap tool जैसी pick-and-place tip plausible लगती है। या यह chip के bond wires के ज़्यादा करीब है, जहाँ precision एक order of magnitude और चाहिए?
process engineering background की वजह से मैं शुरुआत से ही highly automated process बनाने के बजाय पहले ऐसा बहुत manual process खोजने की तरफ झुका जो automate किया जा सके
right to repair जैसे topics पर YouTube के Louis Rossmann से interview के लिए कहना अच्छा हो सकता है
Rossmann right to repair movement के RMS जैसे हैं। overall goal से मिलते-जुलते उनके कई विचार हैं, लेकिन आजकल वे right to repair scene को काफी narrow तरीके से देखते हैं, और उसके बाहर उनके कुछ काफी खतरनाक views भी हैं, इसलिए representative figure के रूप में वे सबसे खराब choice हैं। महिलाओं और minorities के बारे में rough comments के कारण वे कुछ right to repair activists के लिए सचमुच बाधा बने हैं, और वे यह भी स्वीकार नहीं करते कि problem scope किन-किन areas तक फैलता है। उदाहरण के लिए, dishwasher को उन्होंने streams में कई बार “एक simple चीज़ जिसके लिए किसी को boardview की जरूरत नहीं” कहा है
RMS की तरह ही, ऊपर इशारा किए गए statements जैसे, live stream में काफी नशे में रहते हुए उन्होंने कभी-कभी basic human decency के सामान्य standards से मेल न खाने वाले beliefs भी समझाए हैं