
No me gusta grabar placas de circuito impreso. Bueno, no me gusta el proceso de alboroto con cloruro férrico. Imprima allí, planche aquí, exponga la fotorresistencia: toda la historia cada vez. Y luego piense dónde drenar el cloruro férrico. No discuto, este es un método asequible y simple, pero personalmente trato de evitarlo. Y luego sucedió mi felicidad: completé el enrutador CNC. Inmediatamente surgió la idea: pero no si tratar de fresar placas de circuitos impresos. Apenas dicho que hecho. Extraigo un adaptador simple de un abrumado esp-wroom-02 y comienzo mi excursión al fresado de placas de circuito impreso. Pistas especialmente hechas pequeñas - 0.5 mm. Porque si esto no funciona, entonces bueno, qué para esta tecnología.
Aquí necesitas una pequeña digresión. Hay varias formas de obtener un conjunto de códigos g para fresar una placa de circuito impreso de cad. En mi opinión, difieren según el sistema CAD que utilice. Si eres fanático de Eagle, existen soluciones especializadas y bien integradas para él: PCB-GCode , la capacidad de abrir directamente archivos BRD en chilipeppr. Desafortunadamente, no hace mucho tiempo, Autodesk cambió la política de licencias del águila, y ahora a la comunidad no le gusta tanto (puede ver la opinión de un destacado representante de la comunidad ).
Como personalmente hago placas de circuito impreso cada cinco años en días festivos importantes, KiCAD es suficiente para mí para diseñar. No encontré soluciones convenientes especializadas para ello, pero hay una forma más universal: usar archivos gerber. En este caso, todo es relativamente simple: tome pcb, exporte la capa deseada a gerber (¡sin duplicación y otra magia!), Ejecute pcb2gcode y obtenga un archivo nc listo que se puede entregar a la fresa. Como siempre, la realidad es una infección maligna y todo resulta ser un poco más complicado.
Obtener gcode de archivos gerber
Por lo tanto, no planeo describir cómo obtener un archivo gerber, creo que todos saben cómo. A continuación, debe ejecutar pcb2gcode. Resulta que requiere alrededor de un millón de opciones de línea de comandos para producir algo aceptable. En principio, su documentación no es mala, la dominé y descubrí cómo obtener algún tipo de gcode incluso de esa manera, pero aún así quería algo casual. Porque se encontró la GUI pcb2gcode . Esto, como su nombre lo indica, es una GUI para configurar parámetros básicos de pcb2gcode con marcas de verificación, e incluso con una vista previa.

En realidad, en esta etapa se recibe algún tipo de código y puede intentar fresar. Pero mientras me metía en las marcas de verificación, resultó que el valor predeterminado de la profundidad que ofrece este software es de 0.05 mm. En consecuencia, la placa debe instalarse en el enrutador al menos con una precisión superior a esta. No sé cómo alguien lo tiene, pero tengo un escritorio con un molino que es notablemente más curvo. La solución más simple que se me ocurrió fue colocar madera contrachapada de sacrificio sobre la mesa, fresando un bolsillo al tamaño de las tablas, y sería idealmente en el plano de la fresa.
Para aquellos que ya tienen un buen dominio del enrutador, esta parte no es interesante. Después de un par de experimentos, descubrí que es necesario fresar una bolsa en una dirección (por ejemplo, dándole de comer a un diente) y con una superposición de al menos el treinta por ciento. Fusion 360 primero me ofreció demasiado poco abrumador y condujo de un lado a otro. En mi caso, el resultado fue insatisfactorio.
Contabilizando la curvatura de la PCB
Al alinear el sitio, pegué una cinta de doble cara, puse la textolita y comencé a fresar. Aquí está el resultado:

Como puede ver, en un borde de la placa, el cortador prácticamente no toca el cobre, por el otro, fue demasiado profundo en la placa, mientras que el fresado de las migas de PCB se fue. Después de mirar de cerca el tablero, noté que inicialmente es desigual: ligeramente curvado, y no importa cómo sufras con él, habrá algunas desviaciones de altura. Luego, por cierto, miré y descubrí que para las placas de circuito impreso con un espesor de más de 0,8 mm, una tolerancia de ± 8% se considera normal.
La primera opción que viene a la mente es la calibración automática. De acuerdo con la lógica de las cosas, que es aún más fácil, la placa está chapada en cobre, el cortador es de acero, unió un cable al cobre y el otro al cortador, aquí tiene una sonda preparada. Toma y construye la superficie.
Mi máquina está controlada por grbl en un escudo chino barato. Grbl tiene soporte de sonda en el pin A5, pero por alguna razón no hay un conector especial en mi placa. Después de examinarlo detenidamente, descubrí que el pin A5 se envía al conector del puerto SPI (firmado como SCL), también hay tierra cerca. Hay un truco con este "sensor": los cables deben retorcerse. En la fresa, es extremadamente fácil de recoger, y sin esto, el sensor constantemente dará falsos positivos. Incluso después de tejer, continuará, pero muy, muy raramente.

Entonces, el sensor está ensamblado, probado por el probador, luego la pregunta importante es cómo verificar en grbl que todo esté en orden y no romperé un solo grabador. Un poco de google mostró que necesitaba enviar al equipo G38.2 Z-10 F5.
El equipo dice: comience a descender a –10 en Z (altura absoluta o relativa; depende del modo en que se encuentre el firmware ahora). Descenderá muy lentamente, a una velocidad de 5 mm / min. Esto se debe a que los propios desarrolladores no garantizan que el descenso se detendrá exactamente en el momento en que se activa el sensor, y no un poco más tarde. Por lo tanto, es mejor bajar lentamente, para que todo se detenga a tiempo y no tenga tiempo de subir a bordo, así que no juegue. Es mejor realizar la primera prueba levantando la cabeza a una altura muy superior a 10 mm y soltando el sistema de coordenadas. En este caso, incluso si todo no funciona y no tiene tiempo para alcanzar el botón E-Stop, la fresa no se estreñirá. Puede realizar dos pruebas: la primera, para no hacer nada (y al alcanzar –10 grbl dará "Alarma: Falla de la sonda"), la segunda, mientras baja, cierre el circuito con algo y asegúrese de que todo se detenga.
A continuación, debe encontrar un método sobre cómo medir realmente la matriz y distorsionar gcode según sea necesario. A primera vista, pcb2gcode tiene algún tipo de soporte de nivelación automática, pero no hay soporte grbl. Existe la oportunidad de pedirle al equipo que ejecute la prueba con sus manos, pero debe lidiar con esto, y para ser honesto, fui flojo. Una mente inquisitiva podría notar que con LinuxCNC, el comando de ejecución de muestra coincide con el comando grbl. Pero luego viene la diferencia irreparable: todos los intérpretes de gcode "adultos" guardan el resultado de la prueba en una variable de máquina, y grbl simplemente envía el valor al puerto.
Una búsqueda en Google sugirió que todavía había algunas opciones diferentes, pero el proyecto chillpeppr me llamó la atención:
Este es un sistema de dos componentes diseñado para jugar con hierro desde la web. El primer componente: el servidor serie JSON, escrito en Go, se ejecuta en una máquina conectada directamente al hardware y puede controlar el puerto serie a través de sockets web. El segundo funciona en su navegador. Tienen un marco completo para construir widgets con alguna funcionalidad, que luego se puede insertar en la página. En particular, ya tienen un espacio de trabajo listo (un conjunto de widgets) para grbl y tinyg.
Y chillpeppr tiene soporte de nivelación automática. Además, en apariencia es mucho más conveniente que UniversalGcodeSender, que utilicé antes. Pongo el servidor, inicio la parte del navegador, paso media hora tratando de descifrar la interfaz, cargo el gcode de mi placa allí y veo algo de basura:

Después de mirar el gcode en sí, que genera pcb2gcode, veo que usa notación cuando el comando (G1) no se repite en las líneas siguientes, pero solo se dan nuevas coordenadas:
G00 X1.84843 Y34.97110 ( rapid move to begin. ) F100.00000 G01 Z-0.12000 G04 P0 ( dwell for no time -- G64 should not smooth over this point ) F200.00000 X1.84843 Y34.97110 X2.64622 Y34.17332 X2.69481 Y34.11185 X2.73962 Y34.00364 X2.74876 Y31.85178 X3.01828 Y31.84988 X3.06946 Y31.82249 X3.09684 Y31.77131
A juzgar por el hecho de que chilipeppr muestra solo movimientos verticales, ve la línea G01 Z-0.12 aquí, pero no entiende todo lo que viene después de F200. Necesito rehacer la notación explícita. Por supuesto, puede trabajar con sus manos o presentar una secuencia de comandos de procesamiento posterior. Pero nadie ha cancelado aún el G-Code Ripper , que, entre otras cosas, puede superar los comandos complejos de gcode (como los mismos arcos) en otros más simples. Por cierto, también sabe cómo doblar gcode en la matriz de prueba automática, pero nuevamente no hay soporte incorporado para grbl. Pero puedes hacer la misma división. La configuración estándar me convenía bastante (a menos que en la configuración tuviera que cambiar las unidades a mm por adelantado). El archivo resultante comenzó a mostrarse normalmente en chilipeppr:

A continuación, ejecute la prueba automática, sin olvidar especificar la distancia desde la cual bajar la muestra y su profundidad. En mi caso, indiqué que debería reducirse de 1 a –2 mm. El límite inferior no es tan importante, se puede establecer al menos –10, pero no lo recomendaría: un par de veces establecí sin éxito el punto de partida desde el cual comenzar la prueba, y los puntos extremos estaban fuera del tablero. Si la profundidad es mayor, entonces el grabador puede romperse. Y así, solo un error. El nivel del límite superior depende directamente de cuánto tiempo medirá la superficie. En mi caso, en realidad, el tablero casi nunca fue más allá de 0.25 mm hacia arriba o hacia abajo, pero 1 mm es de alguna manera más confiable. Haga clic en la ejecución preciada y vaya al enrutador para meditar:

Y en la interfaz chilipeppr, aparece una superficie ligeramente medida:

Aquí es necesario prestar atención a que todos los valores en Z se multiplican por 50, para visualizar mejor la superficie resultante. Este es un parámetro personalizado, pero 10 y 50 funcionan bien en mi opinión. Muy a menudo me encuentro con el hecho de que un solo punto es mucho más alto de lo que cabría esperar de él. Personalmente, atribuyo esto al hecho de que el sensor atrapa la punta y da un falso positivo. El beneficio de chilipeppr le permite descargar el mapa de altura en forma de json, puede arreglarlo con las manos después de eso y luego cargarlo con las manos. A continuación, haga clic en el botón "Enviar código GC de nivel automático al espacio de trabajo" y el código corregido ya está cargado en pepper:
N40 G1 X 2.6948 Y 34.1118 Z0.1047 (al new z) N41 G1 X 2.7396 Y 34.0036 Z0.1057 (al new z) N42 G1 X 2.7488 Y 31.8518 Z0.1077 (al new z) N43 G1 X 3.0183 Y 31.8499 Z0.1127 (al new z) N44 G1 X 3.0695 Y 31.8225 Z0.1137 (al new z) N45 G1 X 3.0968 Y 31.7713 Z0.1142 (al new z)
Los movimientos del código Z se han agregado al código, lo que debería compensar la rugosidad de la superficie.
Selección de parámetros de fresado
Empiezo a fresar, obtengo este resultado:

Aquí puedes ver tres puntos a la vez:
- El problema con la rugosidad de la superficie se ha ido: todo está cortado (más precisamente, rayado) a casi la misma profundidad, no hay espacios en ninguna parte y en ninguna parte está enterrado demasiado.
- Profundidad insuficiente: 0,05 mm claramente no es suficiente para esta lámina. Las tablas, por cierto, son una bestia desconocida con AliExpress, el grosor del cobre no se indicó allí. La capa de cobre es diferente, la más común: de 18 a 140 micras (0.018-0.14 mm).
- La paliza del grabador es claramente visible.
Sobre la profundización. Es fácil saber qué tan profundo necesita bajar el grabador. Pero hay una especificidad. El grabador cónico tiene una forma triangular en la proyección. Por un lado, el ángulo de información al punto de trabajo determina qué tan difícil es romper la herramienta y cuánto tiempo va a vivir, y por otro lado, cuanto mayor sea el ángulo, mayor será el corte en una profundidad dada.

La fórmula para calcular el ancho de corte para una profundidad dada se ve así (inmodestamente tomada de reprap.org y fijada):
2 * penetration depth * tangens (tool tip angle) + tip width
Lo consideramos: para un grabador con un ángulo de 10 grados y un punto de contacto de 0.1 mm con una profundidad de 0.1 mm, obtenemos un ancho de corte de casi 0.15 mm. En base a esto, por cierto, podemos estimar qué distancia mínima entre las pistas hará que el grabador seleccionado en la lámina del espesor seleccionado. Bueno, aún si no necesita distancias muy pequeñas entre las pistas, aún no vale la pena bajar el cortador demasiado profundo, ya que los cortadores de fibra de vidrio de manera muy contundente incluso de aleaciones duras.
Bueno, todavía hay un momento divertido. Supongamos que tenemos dos pistas separadas 0.5 mm. Cuando ejecutamos pcb2gcode, observará el valor del parámetro de desplazamiento de Toolpath (cuánto desviarse de la pista al fresar) y realmente hará dos pases entre las pistas, separados por (0.5 - 2 * toolpath_offset) mm, entre ellos permanecerá (pero más bien solo rompa) un trozo de cobre, y será feo. Si toolpath_offset se hace mayor que la distancia entre las pistas, pcb2gcode dará una advertencia, pero solo generará una línea entre las pistas. En general, para mis aplicaciones este comportamiento es más preferible, ya que las pistas son más anchas, el cortador corta menos - belleza. Es cierto que puede haber un problema con los componentes smd, pero es poco probable.
Hay un caso pronunciado de este comportamiento: si configura un toolpath_offset muy grande, obtenemos una placa de circuito impreso en vista del diagrama de Voronoi. Al menos, es hermoso;) Puedes ver el efecto en la primera captura de pantalla de pcb2gcode que di. Muestra cómo se verá.
Ahora sobre la paliza del grabador. Esto es lo que los llamo en vano. El eje no es malo en absoluto y, por supuesto, no golpea tan fuerte. Aquí, más bien, la punta del grabador, cuando se mueve, se dobla y salta entre puntos, dando aquí esa imagen extraña con puntos. La primera y principal idea es que el molino no tiene tiempo para cortar y, por lo tanto, salta. Google fácil mostró que las personas fresan placas de circuito impreso con un husillo a 50k revoluciones a una velocidad de aproximadamente 1000 mm / min. Mi husillo da 10k sin carga, y podemos suponer que es necesario cortar a una velocidad de 200 mm / min.
Resultados y conclusiones
Teniendo todo esto en cuenta, mido una nueva pieza de PCB, comienzo a fresar y obtengo este resultado:

El superior es exactamente el mismo que salió de la fresa, el inferior, después de haberlo sujetado con una muela ordinaria un par de veces. Como puede ver, en tres lugares las pistas no se cortaron. En general, el ancho de las pistas flota en todo el tablero. Esto todavía necesita ser tratado, pero tengo una suposición de cuál es la razón. Al principio, fijé el tablero en una cinta de doble cara, y a menudo se fue. Luego, en un par de lugares, agarré los bordes de las cabezas de los tornillos. Parece mantenerse mejor, pero aún juega un poco. Sospecho que en el momento de la molienda se presiona en el sitio y, debido a esto, de hecho, no se corta.

En general, todo esto tiene perspectivas. Cuando se completa el proceso, la construcción del DEM demora entre cinco y siete minutos, luego el fresado en sí toma un par de minutos. Parece que puedes experimentar más. Pero luego puedes hacer perforaciones en la misma máquina. ¡Todavía compre remaches, y habrá felicidad! Si el tema es interesante, entonces puedo escribir otro artículo sobre perforación, tableros bilaterales, etc.