Diyouware TwinTeeth: La mini-factoría de PCBs
Nuevo modelo TwinTeeth Plus con sus diversos cabezales
Diyouware TwinTeeth Basic y Plus son mini-factorías de PCBs dirigidas a los aficionados a la electrónica. Son robots multifuncionales que fabrican circuitos impresos del tamaño de un Shield de Arduino ™ que te ayudarán a hacer prototipos en casa y a aprender mecatrónica.
Pueden realizar las siguientes tareas:
- Fotograbar circuitos impresos con laser ultravioleta en película sensible o placas presensibilizadas.
- Taladrar vías y agujeros usando cualquier mini herramienta tipo Dremel ® o Proxxon ®.
- Dispensar pasta de soldar en pads SMD.
- Plotear circuitos mediante un rotulador permanente (si prefieres este método).
- Imprimir en 3D mandos de potenciómetros, paneles frontales, carcasas, incluso imprimir circuitos con filamento conductor, o hacer soportes de circuitos.
- Tallar materiales blandos o grabar circuitos en PCBs mediante brocas en v (si prefieres este método de grabado).
- Y mucho más... porque es extensible y puede utilizar cualquier otra herramienta que se pueda instalar en él.
Diyouware TwinTeeth viene con cabezales intercambiables (ToolHeads) que automatizan la mayoría de las etapas de fabricación de PCBs en casa. Estos cabezales están fijos en la parte superior del robot así que es muy fácil intercambiarlos.
Mientras que los robots CNC tradicionales o las impresoras 3D mueven la herramienta mientras la pieza está sujeta a la plataforma, TwinTeeth mueve la plataforma mientras la herramienta está fija. El primer método es el mejor si la herramienta es pequeña y quieres hacer piezas grandes. Pero si la herramienta es pesada, como un taladro o un extrusor de 3D, y la pieza es muy ligera como un circuito impreso, es mejor mover la pieza porque proporciona más precisión y reduce las vibraciones.
Inspiración
El año pasado, cuando desarrollamos DiyouPCB, sufrimos mucho intentando eliminar las vibraciones mecánicas y las resonancias de las correas. Cuando empezamos TwinTeeh temíamos no encontrar un diseño libre de vibraciones porque intentamos casi todo en DiyouPCB.
La resonancia de las correas pueden evitarse usando husillos. Esta era la base de nuestro nuevo diseño. Pero no teníamos una idea clara sobre cómo eliminar otro tipo de vibraciones, generadas principalmente por los motores de pasos y los rodamientos lineales.
Evitar cualquier tipo de vibración es importante cuando se dibuja con un laser porque el rayo es muy fino (aprox. 620 nm). Cualquier pequeño movimiento distorsiona el dibujo.
La inspiración surgió de mis hijos gemelos, Son todavía bebes y cuando intentaron por primera vez cepillarse los dientes, utilizaron métodos diferentes. Uno de ellos usó el que usamos todos: mover el cepillo, pero el otro pensó que era más fácil mover la cabeza en lugar del cepillo. ¿Por qué no?
Inmediatamente pensé que tal vez podríamos evitar las vibraciones si dejábamos el láser fijo mientras movíamos el circuito impreso. ¡Y funcionó! Por ello llamamos al proyecto "TwinTeeth" que significa “dientes-gemelos” en inglés. Cada vez que lo nombramos nos hace recordar ese día.
Fijar la herramienta en la parte superior del robot tiene otras ventajas: podemos intercambiarlas fácilmente porque no están conectadas a partes móviles. Y además el robot no tiene que mover los cables, filamentos, cargas asociadas, porta-cables, etc.
Especificaciones Técnicas
- Área de trabajo (X, Y, Z): 70x80x60mm hemos reducido considerablemente el área de trabajo al tamaño de un Shield Arduino ™ porque preferíamos hacer algo pequeño pero preciso. Raramente hacemos circuitos grandes en casa y reducir el área de trabajo tiene algunas ventajas: el robot es más barato, más preciso, más robusto, más pequeño y más manejable. Sin embargo, es escalable, así que puedes hacerlo más grande si lo deseas.
- Movimiento: TwinTeeth se impulsa mediante tres motores Nema 17, husillos y tuercas anti-backlash.
- Velocidad: puede ir tan rápido como 1.200-1.500mm/min.
- Código: soporta archivos G-Code, Postscript y BMP. Eagle CadSoft puede exportar a formato Postscript muy fácilmente. Soportar archivos BMP significa que además de PCBs puede también imprimir y grabar fotos en cobre, aluminio o bronce.
- Láser: estamos utilizando el PHR-803T: el mismo pickup óptico que usamos en DiyouPCB, con una longitud de onda de 405 nm.
- Rastering: el robot dibuja los circuitos PCB en modo rastering de manera similar a como lo hace cualquier impresora de papel: moviendo el láser (o la plataforma en su caso) de un lado a otro.
- Resolución: en el modo rastering imprime a 600DPI (puntos por pulgada) de resolución. El punto láser es aprox. 0,04mm cuando está enfocado. Increíblemente fino. La precisión mecánica teórica es de 0.94um.
- Auto-nivelación – este sistema implementado en el firmware mantiene la plataforma de trabajo siempre horizontal con una tolerancia de menos de 0,01mm mientras el robot la está moviendo. Es muy importante ya que mejora la calidad y precisión del dibujo.
- Enfoque automático: pequeñas diferencias en la superficie de la PCB afectan también a la calidad. Por ello hemos implementado un sistema de enfoque robusto que toma algunas referencias sobre la PCB y extrapola el resultado mediante una ecuación bilineal. Con esta información, el robot ajusta el enfoque del laser automáticamente durante la impresión.
- Enfoque infrarrojo: el sistema de enfoque automático utiliza un láser infrarrojo para evitar sensibilizar la película. Las películas o placas pre-sensibilizadas son sólo sensibles a la luz ultravioleta así que podemos enfocar en la propia placa.
- Electrónica – estamos utilizando la famosa combinación de Arduino ™ Mega 2560, Ramps 1.4 y controladores A4988. También hemos mejorado el circuito Driver del Pickup que desarrollamos para DiyouPCB y ahora incluye nuevas características.
- Plataforma de fijación – es muy importante mantener bien fijada la PCB a la plataforma mientras el robot se mueve. Por otro lado al imprimir circuitos de doble cara tenemos para asegurarnos que ambas caras estén correctamente alineadas. TwinTeeth incluye una plataforma de precisión fabricada en aluminio que mediante unos pines nos permiten fijar y colocar en ella la PCB. Una plantilla nos ayuda a perforar los primeros 4 agujeros que utilizamos para fijarla.
- Cámara – hemos incluido una pequeña cámara USB porque es difícil ver pequeños detalles en PCBs de alta densidad. La cámara también es útil para establecer la posición de inicio que es muy importante para imprimir bien el circuito.
- Impresión 3D: TwinTeeth imprime en 3D mediante el método FFF (fabricación por fusión de filamento), con plástico PLA o ABS. Utiliza un hot-end de 0,35 mm y la calidad de impresión es similar a cualquier impresora 3D que puedas encontrar en el mercado.
Software
Hemos desarrollado un conjunto completo de software para el robot:
- TwinTeeth Firmware: basado en Marlin. Lo hemos modificado en profundidad para soportar múltiples herramientas, controlar el láser, implementar el sistema de enfoque automático, imprimir en modo rastering, mejorar el sistema de buffering y mucho más.
- TwinTeeth Management Console – TwinTeeth viene con una nueva consola de control muy fácil de usar que incluye funcionalidad especialmente diseñada para un entorno multi-herramienta. Hemos incluido funciones para calibrar la impresora, mover los ejes manualmente, ajustar los parámetros de cada herramienta, etc. Este software se comunica con el robot a través de un puerto USB 2.0.
- TwinTeeth Eagle ULPs – son unos programas ULP (User Language Program) que hemos desarrollado para Eagle Cadsoft y que permiten generar los ficheros g-code para taladrar y dispensar la pasta de soldar. También se puede utilizar los archivos generados por otros ULPs como PCBCode.
- Eagle Cadsoft – es probablemente la herramienta de diseño electrónico (CAD) más popular entre los aficionados. La compañía ofrece una versión gratuita para uso no comercial. Eagle genera fácilmente los archivos que TwinTeeth utiliza a partir de los diseños electrónicos.
- Software de Slicing 3D – para generar g-code a partir de tus diseños 3D puedes usar cualquier software como Slic3R o Cura.
TwinTeeth Consola de Control
Este es el software que corre en el PC y que permite controlar a TwinTeeth. Ha sido desarrollado en Java usando el entorno de desarrollo Processing.
La consola de control incluye la siguiente funcionalidad:
- Conectar/Desconectar con el robot usando un puerto USB.
- Cambiar de cabezal - las pestañas de herramientas nos permite seleccionar el cabezal que deseamos usar.
- Homing - mueve la plataforma a la posición de inicio (parte inferior del robot).
- Ir al Cero - mueve el plataforma a la posición de home ((X0,Y0,Z0) para ese cabezal.
- Centrar X/Y - centra la plataforma del robot en los ejes X,Y.
- Jogging - permite mover manualmente la plataforma en los ejes X,Y,Z
- Velocidad - permite ajustar la velocidad tanto en los ejes X/Y como en el Z.
- Min. Z - determina la mínima posición del eje Z para un determinado cabezal.
- Calibración - permite fijar las posiciones de inicio de cada cabezal, ejecutar el auto-nivelado, resetar la configuración, etc.
- Ejecutar el trabajo - abre un archivo Postcript, BMP o g-code y empieza a ejecutar el trabajo.
- Parar/Detener/continuar un trabajo - permite controlar la evolución del mismo.
- Botón de pánico – nos permite parar rápidamente el robot en caso de emergencia.
- Ventana gráfica 3D – muestra en todo momento un gráfico 3D con la evolución del trabajo.
- Ventana de diálogo – muestra mensajes importantes para el usuario.
- Cámara – una ventana a la cámara USB instalada en el robot. Muy útil para fijar la posición de inicio y para inspeccionar la evolución del trabajo.
Cada pestaña con el nombre del cabezal representa un entorno con funcionalidad diferente y los parámetros de configuración asociados a cada cabezal.
Por ejemplo, si seleccionas el Cabezal Laser los parámetros disponibles son: activar un laser determinado (rojo, IR o UV),encender o apagarlo, modificar la potencia, ejecutar el auto-focus, etc.
En el Cabezal de Imprimir 3D (foto de abajo) los parámetros son diferentes: ajustar/comprobar la temperatura del hot-end, extruir algo de filamento o replegarlo.
Cabezales
Llamamos cabezales al adaptador de la herramienta que permite instalarla en TwinTeeth. Estos adaptadores usan una pieza en forma de hexágono y según el cabezal: motores de pasos, ejes lineales, rodamientos o simplemente un mini-taladro.
El cabezal está conectado al robot mediante un conector DB15: un conector muy común en el mercado. Este conector se encarga de comunicar el cabezal con el resto del robot.
Como comentamos anteriormente el firmware del robot y la Consola de Control soportan también este entorno multi-cabezal y por lo tanto cada uno de ellos es configurable por software, tiene sus propios parámetros específicos, una calibración diferente e incluso una posición de inicio distinta.
Cualquiera puede diseñar un nuevo cabezal e imprimirlo en 3D. Además si nos enviáis las especificaciones nosotros podemos realizarlo también.
Hasta el momento están disponibles los siguientes cabezales:
Cabezal Laser
Este cabezal permite imprimir el circuito con un laser ultravioleta en un film sensible o placa pre-sensibilizada. Está basado en el ya famoso Pickup Blu-Ray PHR-803T que hackeamos el año pasado para construir DiyouPCB.
En TwinTeeth hemos mejorado la funcionalidad del Driver del Pickup: el circuito que permite controlarlo. Lo hemos aislado del Arduino™ UNO con el objetivo de pode usar cualquier tarjeta microprocesador. Hemos reducido también el ruido eléctrico que se nos colaba en la señal de focus. En esta nueva versión controlamos los tres diodos laser del pickup: rojo, IR y UV. Además utilizamos el laser infrarojo para enfocar en la placa y así no la emborronamos.
Hemos fabricado algunos prototipos del circuito para reducir su tamaño y así controlar el ruido electrico. La versión actual V3.3 funciona muy bien y enfoca el laser con precisión.
En el lado del software hemos implementado un nuevo método de impresión tipo "Raster", en vez del método vectorial que usabamos en DiyouPCB.
El dibujo vectorial es un método usado sobre todo en máquinas CNC, impresoras 3D y plotters mediante la interpretación de lenguaje g-code o hp-gl. Es adecuado para imprimir o grabar líneas, pero puede ser realmente lento para rellenar polígonos como áreas extensas de masa (GND). El método Raster es el que utilizan las impresoras de papel moviendo el carro de un lado a otro.
En modo Raster, TwinTeeth soporta tanto ficheros Postcript como BMPs, y utiliza ficheros g-code para el dibujo/movimiento vectorial con el resto de cabezales (taladrado, dispensador de pasta, impresión 3D, ploteado, etc.) Eagle Cadsoft genera fácilmente ambos formatos. Postscript lo genera directamente desde el Procesador CAM. Los ficheros g-code se generan mediante scripts ULPs (User Language Program). Hemos desarrollado algunos de ellos para generar los ficheros de taladrar y dispensar pasta. Además puedes usar también PCB-Gcode: un ULP muy popular desarrollado por John Johnson (aunque no lo hemos probado todavía, pero creemos que funcionará).
Como comentamos anteriormente, el Driver del Pickup V3.3 puede encender/apagar, enfocar y controlar la potencia de los tres láseres que tiene el PHR803-T: el laser IR (780nm), el rojo (650nm) y el azul/violeta (405nm). Este último se usa principalmente para imprimir en el film UV. Creemos que también existe en el mercado film sensible al IR que se usa en los photo-plotters profesionales. Si es así, TwinTeeth podría imprimir también en este tipo de film con el láser IR. De todas formas el IR nos es muy útil ahora para enfocar directamente el láser en la placa.
Imprimiento Circuitos de Doble Cara
TwinTeeth ha sido diseñado para imprimir PCBs de dobe cara. Hemos implementado características especiales tanto en la mecánica como en el software para poder hacerlo fácilmente.
El robot incorpora una plataforma de fijación de aluminio que garantiza la alineación de las caras. La plataforma viene con una plantilla que nos permite hacer los primeros cuatro agujeros y con ellos sujetar la placa a la plataforma. La plantilla es indispensable porque se requiere cierta precisión en el taladrado. Una vez hechos estos agujeros podemos fijar la placa a la plataforma con cuatro pines de precisión. Ya simplemente nos queda imprimir por una cara, y al finalizar, le damos la vuelta a la PCB, la volvemos a fijar con los pines e imprimimos la otra.
Cabezal de Taladrado
El cabezal de taladrado es simple pero efectivo. Hemos diseñado un "hexagono" para soportar un Dremel® 200: una mini-herramienta muy popular. El diseño se puede modificar fácilmente y adaptarlo a otros modelos de Dremel® o a cualquier mini-taladro de Proxxon®.
Como comentamos anteriormente hemos desarrollado también unos scripts ULP para Eagle CadSoft que generan los ficheros g-code que necesitaremos para taladrar el circuito. Estos ULPs nos permiten modificar y configurar los diferentes parámetros que afectan a la tarea de taladrar, como son: velocidad, profundidad, tipo de broca, etc. Una vez configurados, simplemente le damos a un botón para generar los ficheros. El ULP generará un fichero por cada tipo de broca, para que podamos parar el robot, cambiarla y reiniciar.
La posibilidad de utilizar cualquier mini-taladro es importante porque así no tenemos que invertir dinero en uno nuevo ya que la mayoría de nosotros ya tiene uno de ellos.
Cabezal Dispensador de Pasta de Soldar
Consiste en una jeringa luer-lock que es actuada mediante un dispensador. Este dispensador se mueve con un pequeño motor de pasos. Permite dispensar automáticamente pequeñas cantidades de pasta de soldar en los pads de circuitos SMD.
Hemos desarrollado también el correspondiente script ULP que genera el g-code a partir del diseño CAD del circuito. El script permite ajustar los parámetros más importantes de control del flujo de la pasta, como son: velocidad del flujo, tiempo de dispensado, replegado, velocidad de los ejes, etc.
TwinTeeth podría dispensar cualquier tipo de pasta o arcilla en 3D. Incluso imprimir comida p.e chocolate (aunque no lo hemos probado todavía ).
Cabezal de Ploteado
Consiste en un "hexagono" que permite instalar un rotulador permanente con el que TwinTeeth pinta el circuito en la PCB.
No es nuestro método favorito para imprimir PCBs, pero lo hemos incorporado a TwinTeeth ya que nos ha sido muy útil para realizar las pruebas y además lo usamos para sujetar la sonda de auto-nivelado.
La sonda de auto-nivelado está realizada con un rotulador reciclado. Le hemos incorporado una punta de metal conectada a la CPU mediante la pinza de cocodrilo y el cable que veis en las fotos. La sonda cierra un circuito cuando toca la superficie de la plataforma de aluminio. De esta forma el robot puede tomar algunos puntos de referencia y conocer con exactitud cuando tiene que ajustar la plataforma para que permanezca nivelada Los puntos de referencia se almacenan en la EEPROM así que sólo hay que calibrar una vez el robot y salvar la configuración. Cada vez que encendamos de nuevo TwinTeeth, el firmware recuperará los datos de la memoria y los usará para nivelar la plataforma.
Cabezal de Impresión 3D
Este cabezal permite imprimir en 3D mediante el método de fusión de filamento. Se puede utilizar cualquier tipo de extrusor. Nosotros hemos utilizado la conocida combinación de Greg's Extruder y hot-end J-Head, que está muy extendida en la comunidad RepRap. El extruder, al igual que resto de cabezales, está conectado al conector DB15 que incluye señales para controlar el motor, el calefactor del hot-end y la termistencia.
Este cabezal, al igual que los demas, está instalado en lo alto de TwinTeeth. Esto tiene una ventaja: la mecánica no tiene que mover la masa del extrusor y del motor. De esta forma se mejora la precisón y la calidad de la impresión.
TwinTeeth Management Console incluye funcionalidad para calibrar el cabezal 3D, extruir filamento y controlar la temperatura del hot-end.
Funciones adicionales
Fabricacion de moldes
Tallar, fresar, grabar materiales blandos como el poliestireno expandido, madera blanda, cera de moldear, yeso, etc. Todo ello es posible con TwinTeeth. Simplemente hay que usar la herramienta mini con las brocas y velocidades adecuadas.
Grabado de PCBs
Si instalas la herramienta mini con una broca en V puedes también grabar el circuito directamente en el cobre. Personalmente preferimos el método de photograbado láser porque es menos destructivo y también porque los métodos ópticos siempre proporcionan más resolución que los mecánicos, pero todo depende de las preferencias de cada uno...y de lo que nos guste el polvo de PCB. :-) Si prefieres este método tendrás que generar el fichero g-code mediante la herramienta PCB-Gcode.
Impresión 3D en resina UV
Es el conocido método de la esterolitografía (SLA). Consiste en imprimir objetos 3D utilizando un láser UV que polimeriza una resina fotosensible.
Tenemos algunos bocetos sobre cómo puede ser este cabezal y probablemente será nuestro próximo proyecto. La mayor ventaja con respecto a tecnologías similares es que el láser del PHR803-T está muy cerca de la resina (menos de 10mm) y perfectamente enfocado en ella en un punto diminuto (algunas micras). Y al igual que en las PCBs, podemos usar el láser IR para enfocar directamente en la bandeja portaobjetos sin sensibilizar la resina.
Algunos amigos nos han comentado que vieron en el CES de las Vegas una impresora 3D que usaba un PHR803-T (y probablemente nuestros diseños de drivers) para imprimir a escala nano. Así que parece que es posible.
En nuestro proyecto de cabezal SLA vamos a usar otra de las ventajas de TwinTeeth que es que también se puede intercambiar la plataforma muy fácilmente. La plataforma está fijada al effector mediante tres tornillos así que simplemente hay que aflojarlos un poco y desconectar el cable.
Por último, TwinTeeth también puede imprimir boca-abajo como una impresora 3D delta normal, e incluso de costado apoyada en una mesa. En otras palabras, no necesita la fuerza de la gravedad para funcionar (El resto lo dejamos a vuestra imaginación).
Impresión 3D en bio-polímeros
Como su nombre indica consiste en imprimir en 3D usando bio-polímeros con el objeto de desarrollar tejidos. Parece sencillo: por lo visto se añade un photo-iniciador a un hydro-gel y se imprime en él mediante un láser UV.
La ventaja de usar TwinTeeth podría ser la precisión debido a que el láser está perfectamente enfocado y muy cerca de la superficie del hydro-gel. Hay laboratorios y universidades en todo el mundo trabajando sobre esto y algunos utilizan impresoras laser de papel modificadas. Pero todavía nadie utiliza un pickup óptico que sepamos y menos TwinTeeth. Si estás interesado en este área de investigación no dudes en contactar con nosotros.
TwinTeeth es open-source
Twinteeth es un proyecto open-source tanto de hardware como de software. Encontrarás los diseños del robot junto con la lista de materiales y el código fuente del sofware en la sección Cómo Obtenerla.
Puedes distribuir, copiar y modificar TwinTeeth bajo los terminos de la licencia internacional Creative Commons Attribution-NonCommercial 4.0.
Para obtener una copia de la licencia, visita esta página http://creativecommons.org/licenses/by-nc/4.0/.
Hemos diseñado y testado TwinTeeth durante casi un año con mucho esfuerzo con el ánimo de que sea útil para la comunidad, pero SIN NINGUNA GARANTIA DE NINGUN TIPO; tácita o implicita a ningún propósito particular.
Difusión Mundial
Twinteeth ha tenido durante los últimos años una difusión mundial con más de 190.000 sesiones.
Agradecimientos
Finalmente me gustaría dar las gracias a la siguientes personas que directa o indirectamente me ayudaron a crear TwinTeeth:
- Equipo de desarrollo de Marlin Firmware: Erik van der Zalm and @daid and Johann C. Rocholl por sus modificaciones.
- Equipo de Processing: Ben Fry y Casey Reas
- Andreas Schlegel por su fantástica librería ControlP5.
- Equipos de Ghostscript y Ghost4J.
- John Johnson desarrollador de PCB-gcode.
- Equipo de Eagle CadSoft por su potente herramienta CAD.
- Richard Horne (RichRap) que me enseño en su blog mucho sobre imprimir en 3D y me inspiró con sus impresoras delta.
- Heraus S.A que nos donó pasta de soldar para las pruebas.
- J.L.Carrera mi mejor amigo que me ayudó con la fotografía.
Y en especial a:
- Charlie mi hermano: que trabajó muy duro hackeando el pickup y diseñando la electrónica.
- Agnes mi mujer (por ser paciente con mis hobbies) y por corregir mis fallos en inglés.
- Victor y Emma que realmente fueron los que más contribuyeron al proyecto con su creatividad cepillandose los dientes.
A todo ellos, muchas gracias!!
Cómo...