Ingeniería inversa del boardview de Switch Lite con 1,917 cables
(usoldering.com)- Se publicó un conjunto de datos de boardview que extrae el netlist de una PCB ensamblada de la placa lógica de Nintendo Switch Lite y combina componentes, geometrías de pads e imágenes de referencia de ambos lados
- Para el trabajo se usaron un panorama de PCB a 6,000 PPI, una GUI para superponer datos de componentes y pads, y una PCB de extracción propia capaz de activar secuencialmente muchos pines y leer su estado
- El procedimiento completo abarca captura y alineación de ambos lados, retiro del RF Shield, desoldado y clasificación de componentes, medición de continuidad a GND, agrupación de fragmentos de red según conexiones visibles en capas externas, y fusión de fragmentos mediante cableado hacia la PCB de extracción
- Los datos publicados pueden abrirse en OpenBoardView como
Switch Lite Logic Board.bvr, y como el renderizado complejo aún no está soportado en OBV, también se ofrece compatibilidad con FlexBV5 - Al interpretar los resultados hay que considerar el gran tamaño de los originales a 6,000 PPI, la contaminación en el panorama superior, la posibilidad de falsos positivos por residuos de flux y la falta de datos de medición de características eléctricas de los componentes
Datos públicos del boardview de Switch Lite
- La publicación es el resultado de extraer el netlist de una placa lógica ensamblada de Nintendo Switch Lite
- En una PCB, los componentes se sueldan a los pads de montaje expuestos, y las capas de cobre conectan los pads entre sí para formar el circuito eléctrico
- La lista completa de conexiones entre pads y componentes es el netlist, y al combinarla con las geometrías de componentes y pads se obtiene el boardview
- El conjunto final reúne el boardview y las imágenes de referencia de ambos lados de la PCB
Cómo abrirlo en OpenBoardView
- Descarga la última versión de OpenBoardView
- Los datos publicados pueden descargarse por Torrent o por Download
- Descomprime el archivo, lee todos los
.txtincluidos y luego úsalo en OBV en este orden- En
View, desactiva Board Fill y Part Fill - En
File, abreSwitch Lite Logic Board.bvr - Haz clic izquierdo para ver la red de componentes y pads, arrastra para moverte y usa la rueda del mouse para acercar o alejar
- Haz clic central o presiona Space para cambiar de lado de la placa
- En
Qué hizo posible la extracción del netlist
- Se utilizó un proceso para crear imágenes panorámicas de una PCB ensamblada a 6,000 PPI con precisión geométrica y de color
- Se usa una GUI point-and-click que dibuja datos de geometrías de componentes y pads sobre el panorama, y también permite agregar y corregir datos manualmente
- La PCB fabricada a medida puede energizar pines, uno por uno, en una cantidad arbitraria y leer el estado de todos los pines en cada paso
Flujo de trabajo real
- Se tomaron múltiples imágenes para hacer stitching del panorama del lado inferior
- Luego se volteó la placa, se desoldó el RF Shield y se hizo también stitching del panorama del lado superior
- Se compararon entre sí ambos panoramas y otras imágenes para refinar aún más la precisión geométrica y de color
- El panorama terminado se importó a la GUI y se colocaron las geometrías iniciales de componentes y pads
- Todos los componentes se desoldaron uno por uno y se colocaron en una ubicación única de bin para análisis posterior
- La ubicación del bin y el reference designator estimado se registraron en la GUI
- Si había diferencias con las geometrías de pads creadas en la etapa 2, se corrigieron
- Con todos los pads expuestos y sin cortos, se usó un DMM en modo de continuidad
- Una punta se conectó al ground plane
- Con la otra punta se probaron todos los pads de la PCB
- Los aciertos se registraron en la GUI y se fusionaron como una sola red
- Los pads restantes se agruparon como net-fragments según las conexiones visibles en las capas externas de ambos lados
- Si no había conexiones visibles, se consideraban fragmentos independientes
- En la GUI se registró el orden de los cables soldados desde los pines de la PCB de extracción hacia los net-fragments de la PCB objetivo
- Al ejecutar el extractor, la energía entra desde los pines de la PCB de extracción, pasa por los cables hacia los net-fragments
- Luego atraviesa conexiones ocultas dentro de la PCB y se mueve a otros net-fragments
- Después vuelve por otro cable a la PCB de extracción, y ese resultado se registra
- Los resultados registrados se usan para construir el mapa completo de conexiones ocultas
- Luego, con base en ese mapeo del extractor, se fusionan los fragmentos para crear el netlist final y exportarlo como archivo de boardview
Limitaciones de los datos y las herramientas
- Los panoramas originales a 6,000 PPI son de 0.5 gigapíxeles cada uno, lo que genera varios problemas
- Los panoramas a 6,000 PPI se ofrecen por Torrent o por Download
- En ZoomHub pueden verse los panoramas top-side y bottom-side
- Los contornos de componentes y pads pueden verse como formas simples
- Las funciones de renderizado complejo actualmente no están soportadas en OpenBoardView
- Aun así, los datos sí están incluidos
- El archivo también es compatible con el fork premium y closed-source FlexBV5
Partes omitidas del proceso y límites de calidad
- Después de retirar el RF Shield y antes de la etapa de extracción, sería deseable incluir una limpieza ultrasónica
- Quitar el RF Shield sin low-melt bismuth solder requiere varios trucos
- Como no había limpiadora ultrasónica, el panorama del lado superior quedó más sucio que el del lado inferior
- Si los residuos de flux antes de la extracción son lo bastante conductivos, pueden aparecer conexiones falso-positivas entre net-fragments
- Entre las etapas 8 y 9 falta una etapa para sacar del bin los componentes y medir sus características eléctricas
- El equipo disponible es un LCR Meter básico y de baja precisión
- Si se midiera ahora, el resultado sería un conjunto de datos incompleto y de calidad relativamente baja
Objetivo del proyecto y solicitud de apoyo
- El autor tiene más de 10 años de experiencia en Electronics Contract Manufacturing para los sectores médico, aeroespacial, militar e industrial
- Más de la mitad de ese tiempo fue como SMT Process Technician, con experiencia y permisos de lectura y escritura sobre equipos costosos
- Este proyecto es un experimento que combina trabajo freelance remoto por internet con soldadura eléctrica especializada
- Operar un taller de reparación, perseguir ingresos por publicidad, promocionar affiliate links o revender herramientas de baja calidad no encaja con el tipo de trabajo de soldadura que busca
- Si los datos publicados te resultan útiles o quieres ver más, pide apoyo vía donate
- Con ese apoyo busca añadir más dispositivos, reducir el cycle time, mejorar la calidad y publicar más datos
- El objetivo es hacer reproducible todo el proceso mediante optimización de costos, documentación y open source
1 comentarios
Opiniones de Hacker News
No tengo experiencia directa, pero en el modelo de financiamiento parece que les preocupa que, después de publicar el trabajo, casi no genere ingresos por la piratería. Podrían considerar más bien juntar dinero primero con crowdfunding, y eso además tendría el efecto de que la gente vote de forma natural por los proyectos que más quiere
Este modelo se parece al de Empress, la infame cracker de DRM Denuvo. Se le conoce prácticamente como la única persona capaz de romper este anticheat de juegos: https://en.m.wikipedia.org/wiki/Empress_(cracker)
Hay bastante controversia a su alrededor, pero financieramente parece funcionar. También vale la pena pensar para qué sirve este trabajo y qué propuesta de valor tiene para otras personas. Por ejemplo, como con las consolas Wii modificadas para ser más pequeñas, un grupo reducido de personas que quiere obtener el netlist de su circuito favorito para recrearlo en un tamaño menor, con más capas y técnicas modernas, podría encontrarle mucho valor
Ya todos envejecieron y tienen trabajos de desarrollo estables y bien pagados. Ni siquiera quieren asumir el riesgo de violar la ley. De 1987 a 2004 fue realmente divertido, pero no he abierto IDA en 20 años. Ese capítulo se cerró, y no creo ser el único
Hubo un tiempo en que podía desensamblar Z80 en mi cabeza. Ahora solo recuerdo que C9 era RET y olvidé el resto
Hay muchos proyectos donde sería útil tener nuevas PCB para equipos antiguos. Por ejemplo, hay computadoras vintage vulnerables a daños por capacitores o baterías, y aunque existen algunas placas de reemplazo para Mac, claramente son trabajos artesanales hechos con mucho cariño
El Hi-Fi clásico también tiene muchas placas de 40 años y materiales que se degradan. Por ejemplo, algunas PCB tempranas de doble cara tenían la segunda capa literalmente pintada. Un netlist preciso también podría ayudar a mejorar la calidad de la información de esquemáticos cuando lo único disponible son escaneos antiguos de manuales de servicio casi ilegibles
Excelente proyecto. Lo vi hace unos días y la cantidad de cables era impresionante
Llevo años haciendo ingeniería inversa de PCB, principalmente con placas de 2 a 4 capas, y esto es parte del problema que estaba pensando cómo resolver. Lo mejor que se me ocurre es un equipo de flying probe armado a partir de una impresora 3D modificada. Básicamente sería: 1) escanear la parte superior e inferior de la placa, 2) crear una lista de puntos de prueba y pads, y 3) pasar las coordenadas al sistema de flying probe para generar el netlist
Otro método para placas multicapa es escanear-lijar-escanear. Personalmente lo considero el más preciso, porque permite capturar correctamente estructuras como planos de tierra y guard traces. Se puede obtener el arte exacto, pero tiene la desventaja de que el polvo generado es bastante dañino
También se podría inferir la calidad del contacto monitoreando cambios en la capacitancia del cabezal de la sonda
Hice rápidamente un visor con Openseadragon para la PCB del artículo: https://ha-norge.no/images/pcb_highres/highres_pcb.html
Se puede ver en resolución completa desde el celular sin descargar el JPG de 124 MB. La imagen está compuesta por capas de distintas resoluciones y muchísimas imágenes pequeñas, más de 45,000
Es cierto, pero no quiero soldar 2,000 cables. La última vez que hice ingeniería inversa de una placa de forma “profesional”, la mandé afuera para un escaneo CT y recibí un ejecutable propio con los datos de nube de puntos, extracción de superficies y una interfaz para hacer visibles las características ajustando histogramas
Yo montaría algunas sondas automáticas en el chasis de una impresora 3D y combinaría visión, alineación y algoritmos tradicionales de visión por computadora
Estas cosas ya existen, pero me gustaría que hubiera una versión open source
Parece que debería ser posible, pero no sé lo suficiente sobre la fuente y los detectores CCD como para imaginar cómo ensamblarlo
La cantidad de soldadura necesaria aquí es una locura. Existen equipos industriales de flying probe que hacen el mismo trabajo de forma totalmente automática y sin soldar, pero la ingeniería inversa típica al estilo chino consiste en desgastar la placa capa por capa: https://www.chinapcbcopy.com/pcb-reverse-engineering/
Las empresas chinas ofrecen este servicio a precios muy bajos, del orden de cientos de dólares por 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/
Realmente habría sido genial tener algo así. En los últimos meses intenté hacer ingeniería inversa de la interfaz de alimentación de una motherboard de servidor Dell y del riser PCI-E de una motherboard Lenovo ThinkCentre, pero hacerlo a mano fue tan doloroso que apenas identifiqué unas pocas conexiones básicas y casi me rendí
No sé muy bien cuál es el objetivo. Creo que esto sería un excelente proyecto open source. Incluso si se quiere ganar dinero, creo que se puede crear mucho más valor en el proceso que en la herramienta en sí. Al fin y al cabo, la herramienta probablemente solo la pueda usar bien, en la práctica, su propio autor
En los comentarios de abajo se habla de automatizar más el proceso, como con equipos de bonding, pero en esta área general ya se ha hecho mucho trabajo mecánico desde el lado de las impresoras 3D. Parece que podría adaptarse con relativa facilidad para probing
Creo que la mayor parte del valor está en la tecnología de imaging, y se podría ofrecer fácilmente como un servicio por correo. También se podrían fabricar en masa los PCB extractores y venderlos con un pequeño margen, y liberar el resto como open source
Me pregunto si se podría usar un enfoque de cama de clavos para eliminar las dificultades mecánicas de una flying probe. Sería algo como poner miles de probes en una grilla de cierta resolución y conectarlos a un backend de matriz de switches casi igual al que ya tienes
En particular, algo como [1] quizá tenga suficiente resolución. Ahora los “probes” son solo pads sobre un PCB sensor. Esto convierte el problema mecánico en un problema de layout de PCB de una densidad absurda, pero eso más bien suena como un área que encaja bien
El curado térmico de la capa anisotrópica es molesto y puede terminar siendo una solución de un solo uso, pero si lo que vendes son placas, no está tan mal
Otro concepto de “tonto, pero tal vez funcione” sería usar el escaneo de la placa para fabricar un PCB personalizado con el mismo layout de pads en espejo y montar ambas placas directamente enfrentadas. Sería un breakout a nivel de placa, para facilitar soldar cables o incluso integrar directamente el hardware de extracción de netlists
[1] https://www.3m.com/3M/en_US/p/d/b5005076018/
Los dispositivos móviles modernos suelen usar paquetes BGA con paso de 0.5 mm. A esta resolución, incluso una placa relativamente pequeña de 5×5 cm necesitaría como mínimo 100×100 probes por cara, es decir, 10 mil probes. Si la placa crece, la cantidad aumenta al cuadrado
Una forma mucho más fácil es un equipo de flying probe con unos pocos probes que puedan moverse rápido [1]. El artículo también menciona esta opción, pero la descarta por el costo inicial
[1] https://en.wikipedia.org/wiki/Flying_probe
El enfoque de fuerza bruta para encontrar conexiones ocultas es simple, pero brillante. Sé que una buena parte del trabajo actual de ingeniería inversa hobbyista tiene que ir mucho más lejos, ser destructivo y requerir lijar capa por capa. El resultado no es un simple boardview, sino una reconstrucción 1:1, pero queda claro que a medida que aumente la cantidad de capas de PCB, especialmente en dispositivos de consumo de punta, eso se va a volver cada vez más difícil
Es realmente impresionante. Me llamó especialmente la atención la soldadura manual; me encanta ese género de “esto es imposible, habría que hacerlo miles de veces” respondido con “entonces lo hicimos miles de veces”
Dicho eso, hoy en día los pick-and-place caseros son cada vez más viables, así que me pregunto si habría alguna forma práctica de aprovecharlos. Una punta de pick-and-place parecida a una herramienta de wire-wrap suena plausible. ¿O esto se parece más a los bond wires de un chip y requiere un orden de magnitud más de precisión?
Por mi formación en ingeniería de procesos, me incliné por encontrar primero un proceso muy manual pero automatizable, en lugar de partir desde un proceso altamente automatizado
Sería bueno pedirle una entrevista a Louis Rossmann de YouTube sobre temas como el derecho a reparar
Rossmann es como el RMS del movimiento por el derecho a reparar. Muchas de sus ideas coinciden con el objetivo general, pero hoy tiene una visión bastante estrecha de la escena del derecho a reparar y, fuera de eso, también sostiene opiniones bastante peligrosas, así que es una pésima figura representativa. Sus comentarios agresivos sobre mujeres y minorías se han convertido en un obstáculo real para algunos activistas del derecho a reparar, y tampoco reconoce hasta qué ámbitos se extiende el alcance del problema. Por ejemplo, varias veces dijo en streams que los lavavajillas son “cosas simples para las que nadie necesita un boardview”
De forma parecida a RMS, como sugiere el comentario anterior, alguna vez explicó en un livestream, muy borracho, creencias que no encajan muy bien con los estándares habituales de decencia humana básica