1 puntos por GN⁺ 2024-02-26 | 1 comentarios | Compartir por WhatsApp
  • 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 .txt incluidos y luego úsalo en OBV en este orden
    • En View, desactiva Board Fill y Part Fill
    • En File, abre Switch 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

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

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

 
GN⁺ 2024-02-26
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

    • Es probable que muchas de las personas capaces de romper Denuvo simplemente no quieran hacerlo
      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
    • Un crowdfunding al estilo cazadores de recompensas probablemente sería ideal. Creo que se podría armar más o menos algún software de foro donde cada hilo sea una campaña de crowdfunding distinta
    • Estoy de acuerdo con el proceso de hacer crowdfunding para circuitos específicos
      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

    • Si se tienen datos de imagen→CAD, creo que se podría armar algo parecido a una máquina de die bonding para automatizar el proceso. Para cubrir toda la continuidad, el flying probe necesitaría dos cabezales, uno por cada lado, y también un algoritmo que haga varias punciones con pequeños desplazamientos para manejar contactos ligeramente desalineados o deficientes
      También se podría inferir la calidad del contacto monitoreando cambios en la capacitancia del cabezal de la sonda
    • ¿Qué se puede hacer con los datos de PCB obtenidos por ingeniería inversa? ¿Tienes una placa funcional, la sometes a ingeniería inversa y al final puedes fabricarla tú mismo?
    • ¿Por qué hacer ingeniería inversa de una PCB? También me da curiosidad saber qué materiales consultaste al empezar
    • ¿Existe alguna herramienta que genere automáticamente un netlist a partir de capas de PCB escaneadas?
  • 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

    • Muchas gracias por el ancho de banda. Me gustaría usar este enfoque para escaneos de placas en el futuro, pero no tengo infraestructura de hosting. Sé que OSD soporta overlays, y sería genial poder ofrecer funciones de OpenBoardView como una webapp
  • 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

    • ¿Sería posible crear un equipo de rayos X open source capaz de hacer este tipo de escaneo CT?
      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/

    • “La ingeniería inversa de PCB es una tecnología de investigación inversa que utiliza una serie de técnicas de investigación inversa”, caray
  • 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

    • El objetivo original era entender hasta el final cómo llevar a la práctica una idea que pensaba que era posible. El objetivo actual se parece más a mejorar esto e iterarlo, mientras veo cuánto interés de mercado hay realmente por este tipo de cosas
      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/

    • Este enfoque no escala
      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
    • Me gusta la última idea, pero ¿cómo conectas una placa con la otra? ¿Bolas de soldadura? ¿Solo presión?
    • Pensé lo mismo mientras leía el artículo. Parece que se podría automatizar bastante el probing
  • 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?

    • El objetivo más pequeño en este PCB tiene un diámetro de unos 0.2 mm. Desde el punto de vista de la robótica de precisión, es algo perfectamente manejable. Con un soldador robótico o un sistema de soldadura láser con alimentador y cortador de alambre, se podría construir algo parecido a un die bonder básico que suelde cables en los pads correctos
      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

    • No soy el autor original, pero mientras menos exposición tenga a Louis “debería poder pegarle a mi hijo” Rossmann, mejor es mi vida
      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