====== CNC ======
Una CNC es una máquina de control numérico que a partir de comandos gcode((https://es.wikipedia.org/wiki/G-code)) que envía un computador realiza operaciones de maquinado en materiales como madera, baquelitas de circuito impreso, aluminio, acrílico, entre otros.
====== Uso de CNC para prototipar circuitos impresos ======
Se describe a continuación el proceso de prototipado de circuitos impresos desde el diseño del esquemático hasta el maquinado y el corte de la pieza de baquelita
===== Software =====
==== CAD ====
https://en.wikipedia.org/wiki/Computer-aided_design
El diseño del circuito se hace en kicad, una vez se tiene listo el enrutado del pcb es necesario hacer tres procesos para el proceso de producción del prototipo.
- Delimitar la zona de corte {{:proyectos:cnc:delimitar_zona_corte.png?600|}}
- Definir el origen auxiliar para nuestro pcb {{:proyectos:cnc:definir_origen.png?600|}}
- Para finalizar se exporta el proyecto en formato Gerber((https://es.wikipedia.org/wiki/Gerber_(formato_de_archivo) )){{:proyectos:cnc:trazar_gerber.png?600|}}{{:proyectos:cnc:trazar_gerber2.png?600|}}El proceso de generación del archivo de perforaciones se hace en otra ventana{{:proyectos:cnc:archivos_taladro.png?600|}}
De este proceso obtenemos un archivo formato .gbr por cada capa seleccionada y un único archivo formato .drl. Se debe convertir en código gcode, el lenguaje que interpreta la máquina CNC.
==== CAM ====
https://en.wikipedia.org/wiki/Computer-aided_manufacturing
El software usado para la conversión de gerber a gcode es flatcam((http://flatcam.org/))
FlatCAM lets you take your designs to a CNC router. You can open Gerber, Excellon or G-code, edit it or create from scatch, and output G-Code. Isolation routing is one of many tasks that FlatCAM is perfect for. It's is open source, written in Python and runs smoothly on most platforms.
**Pass overlap: 0.08; A normal Pass overlap is 40% of the tool diameter.**
FIXME
Las medidas correctas de la profundidad del maquinado (enrutar el cobre), dependen de el ángulo de la punta, el ancho de la punta y la profundidad a la que esta trabaje.
* https://bitbucket.org/jpcgt/flatcam/wiki/V-Shaped_bits__Groove_Dimension_Tables
* {{:proyectos:pasted:20200811-205801.png?800}}
* {{:proyectos:pasted:20200811-210214.png?800}}
https://reprap.org/wiki/PCB_Milling ->Milling tools section
Engraving Tips
Principal drawing of an engraving tip
These don't allow feed rates as high as end mills, but due to their angle, they are relative stiff while still allowing isolation cuts down to 0.2 mm.
Opinions are different about which tool angle is the best. Some use 90 deg tools, others report best results with 60 degs, even others use exclusively 10 deg tips.
Common to this type of tools is, the isolation path gets wider the deeper you plunge the tool into the material. Accordingly, the PCB raw material has to be very flat and well leveled to the machine. Try to allow no more than 0.1 mm.
The additional widening of the isolation gap is
2 * penetration depth * tangens ( tool tip angle / 2 )
That results in 17% of the penetration depth for a 10 deg tip, 54% for 30 deg, 115% for the 60 deg version and no less than 200% for a 90 deg tool tip angle. 0.1 mm additional penetration depth means a 0.2 mm wider isolation gap in the latter case.
Judging by reports found on the net, sharper tips have a stronger tendency for burr, so - like always in life - the best angle is a compromise.
FIXME
Para nuestro caso se cargan los archivos de las capas de corte y de cobre, además de la capa de perforaciones. El funcionamiento de flatcam nos permite definir acciones por cada uno de los archivos cargados, los seleccionamos en la ventana de la izquierda en el programa y genera archivos gcode a partir de estas acciones
- Cargar archivos .grb o de .drl {{:proyectos:cnc:2019-05-11-232537_1440x900_scrot.png?600|}}
- Podemos previsualizar el diseño del circuito para la capa de cobre, seleccionamos la capa que se desee maquinar y genera el proceso de creación de rutas por donde va a pasar la fresa{{:proyectos:cnc:2019-05-11-233610_1437x611_scrot.png?600|}}
- El primer proceso es el enrutado de la placa{{:proyectos:cnc:2019-05-13-142829_1434x607_scrot.png?600|}}
- Los parámetros seleccionados para una punta V de 0,1mm (existen de otros tamaños) y para que las vista tenga buena aislación se definen 4 pasadas de la punta {{:proyectos:cnc:2019-05-13-143204_289x282_scrot.png?600|}}
- Se genera la ruta que se en rojo en el gráfico, pero luego es necesario definir la profundidad del maquinado en el eje Z. Se da clic en generate para exporta el g-code {{:proyectos:cnc:2019-05-11-233655_1440x900_scrot.png?600|}}
- El archivo que se genera en este proceso es que el vamos a pasar por el software de autonivelación llamado Autollevelling((http://www.autoleveller.co.uk/)){{:proyectos:cnc:2019-05-11-233707_1440x900_scrot.png|}}
** Perforaciones: ** El proceso para la generación del g-code para las perforaciones es similar al explicado anteriormente, esta vez se carga el archivo .drl a partir del ícono mostrado en la primera figura de esta sección
- Cargar archivo de perforaciones {{:proyectos:2019-05-13-150844_1435x585_scrot.png?600|}}
- Seleccionamos los grupos de tamaños de huecos según la broca con la que vamos a hacer las perforaciones{{:proyectos:2019-05-13-150943_1440x877_scrot.png?600|}}
- Exportamos el archivo g-code por cada grupo de perforaciones{{:proyectos:2019-05-13-151126_1400x549_scrot.png?600|}}
- Para este caso son 0.5mm, 1mm y 3mm {{:proyectos:2019-05-13-151255_1440x877_scrot.png?600|}}
- {{:proyectos:2019-05-13-151450_1416x522_scrot.png?600|}}
**Autolevelling:**
Este proceso es crucial para la calidad del prototipo, como la capa de cobre sobre las baquelita es tan delgada (0,1 - 0,2 mm) un desnivel de 1mm nos producirá efectos no deseables en el maquinado de la pcb. La máquina cnc tiene un puerto para probar el nivel ...
{{:proyectos:cnc:2019-05-13-162023_1440x877_scrot.png?600|}}
{{:proyectos:cnc:2019-05-13-161718_707x863_scrot.png?600|}}
**MACH3 CONFIG**
{{ :proyectos:img_20191102_115143.jpg?200 |}}{{ :proyectos:img_20191102_202027.jpg?200 |}}{{ :proyectos:img_20191103_155513.jpg?200 |}}{{ :proyectos:img_20191103_164403.jpg?200 |}}{{ :proyectos:img_20191103_214629.jpg?200 |}}{{ :proyectos:img_20191103_214640.jpg?200 |}}{{ :proyectos:img_20191103_214654.jpg?200 |}}{{ :proyectos:img_20191103_214708.jpg?200 |}}{{ :proyectos:img_20191103_214719.jpg?200 |}}{{ :proyectos:img_20191103_214759.jpg?200 |}}{{ :proyectos:img_20191103_214807.jpg?200 |}}{{ :proyectos:img_20191103_214818.jpg?200 |}}{{ :proyectos:img_20191103_214827.jpg?200 |}}{{ :proyectos:img_20191103_214845.jpg?200 |}}{{ :proyectos:img_20191103_214852.jpg?200 |}}{{ :proyectos:img_20191103_214923.jpg?200 |}}{{ :proyectos:img_20191103_214931.jpg?200 |}}{{ :proyectos:img_20191103_214942.jpg?200 |}}{{ :proyectos:img_20191103_215029.jpg?200 |}}
===== Hardware =====
* Mesa nivelada
* Puntas de maquinado:
* **en "Ve"**:
* **cuadradas**:
* Spindle
* Materiales pcb:
* FR4
* FR2
===== Solución de problemas =====
{{:proyectos:img_20190305_115851-1024x768.jpg?400|}}{{:proyectos:img_20190305_115322-1024x768.jpg?400|}}{{:proyectos:img_20190305_115036-768x1024.jpg?400|}}{{:proyectos:img_20190305_115021-1024x768.jpg?400|}}{{:proyectos:img_20190305_114932-1024x768.jpg?400|}}
{{:proyectos:cnc:img_20190310_121550.jpg|}}{{:proyectos:cnc:img_20190310_121946.jpg|}}{{:proyectos:cnc:img_20190310_171957.jpg|}}{{:proyectos:cnc:img_20190310_172124.jpg|}}{{:proyectos:cnc:img_20190310_172318.jpg|}}{{:proyectos:cnc:img_20190310_173000.jpg|}}{{:proyectos:cnc:img_20190310_180435.jpg|}}{{:proyectos:cnc:img_20190310_110411.jpg|}}{{:proyectos:cnc:img_20190310_110416.jpg|}}{{:proyectos:cnc:img_20190310_113352.jpg|}}{{:proyectos:cnc:img_20190310_120612.jpg|}}{{:proyectos:cnc:img_20190310_120621.jpg|}}
{{ :proyectos:cnc:vid_20190313_201445.mp4 |}}{{ :proyectos:cnc:vid_20190313_203753.mp4 |}}
{{ :proyectos:cnc:vid_20190313_210048.mp4 |}}{{ :proyectos:cnc:vid_20190313_210108.mp4 |}}{{:proyectos:cnc:img_20190313_211634.jpg|}}{{:proyectos:cnc:img_20190313_201439.jpg|}}
{{:proyectos:cnc:img_20190415_203053.jpg|}}{{:proyectos:cnc:vid_20190415_195658.mp4|}}{{:proyectos:cnc:img_20190415_200959.jpg|}}{{:proyectos:cnc:vid_20190415_200933.mp4|}}{{:proyectos:cnc:img_20190415_203042.jpg|}}
{{:proyectos:cnc:img_20190530_150735_2.jpg?600|}}{{:proyectos:cnc:img_20190530_150829_2.jpg?600|}}
===== Exportar gerbers en kicad =====
* Definir origen auxiliar -> https://hacmanchester.github.io/LaserCutter.PCB.Making/KiCad/KiCad-ExportGerber/
===== Convertir gerbers gcode =====
* http://copper.carbide3d.com/
* Visualizar gcode https://ncviewer.com/
===== Milling =====
* La nivelación de la máquina es crítica para un buen resultado
* La superficie debe ser firme, 0 vibraciones
* La usabilidad de las puntas va a depender mucho de la velocidad del motor, y del 'feed' que se le de a los ejes; las puntas se pueden romper facil a altas velocidades, hay que encontrar las que sirvan mejor para limpiar cobre de una pcb
* Para limpiar el cobre realmente necesitamos una profundidad mas o menos de 0.05mm, se realizo un test a 0.08mm de profundidad y funciona bastante bien
==== ¿Cómo seleccionar la punta? ====
{{https://ae01.alicdn.com/kf/HTB16vm.klnTBKNjSZPfq6zf1XXao/5pcs-3-175mm-Shank-V-Shape-Wood-Cutter-Carbide-Engraving-Bits-Carving-Tools-CNC-Router-Bit.jpg_640x640.jpg?600}}
* Descripción detalla de las puntas de cabeza plana y la puntas en V -> https://support.bantamtools.com/hc/en-us/articles/115001656913-Engraving-Bit-Isolation-Milling
* {{youtube>_ak0IJUMBFg?medium}}
* http://easel.inventables.com/users/sign_in
* {{youtube>v7JUMlOk8DE?medium}}
===== Referentes =====
* http://www.buildlog.net/blog/2018/07/grbl-for-esp32-beta-release/
* https://support.bantamtools.com/hc/en-us/articles/115001656913-Engraving-Bit-Isolation-Milling
* http://flatcam.org/
* http://scorchworks.com/Gcoderipper/gcoderipper.html#features
* https://www.inventables.com/projects/how-to-mill-a-through-hole-pcb
* https://www.instructables.com/id/Probing-and-Milling-a-PCB-using-an-Arduino-Based-C/#step0
* https://bitbucket.org/jpcgt/flatcam/wiki/Home
* https://bitbucket.org/jpcgt/flatcam/wiki/Reachout
* https://reprap.org/wiki/PCB_Milling#FlatCAM
* https://bitbucket.org/jpcgt/flatcam/wiki/V-Shaped_bits__Groove_Dimension_Tables
* https://github.com/vlachoudis/bCNC/wiki/AutoLevel
* http://www.autoleveller.co.uk/faqs/#qe-faq-6974
* https://www.cnczone.com/forums/xzero-cnc/192666-cnc-3.html
* https://ncviewer.com
* CLAVE
* https://www.instructables.com/id/Custom-PCBs-on-a-CNC-Router/
* http://www.techydiy.org/configuring-autoleveller-with-sainsmart-genmitsu-3018-mx3-and-mach3-usb/
* El procedimiento genera dos archivos, uno se llama heightmap.txt que se genera automáticamente y otro al que uno le designa el nombre. Los nombres deben ser diferentes.
* https://hackaday.com/2018/01/04/guide-why-etch-when-you-can-mill/
* https://sienci.com/2018/08/23/pcb-milling-tutorial/
* https://carbide3d.com/apps/pcb/
* https://www.mischianti.org/2020/04/30/flatcam-pratical-tutorial-gcode-and-pcb-milling-part-6/
* https://forum.mysensors.org/topic/8735/cnc-pcb-milling
{{youtube>BzXxSgVrBUc?}}
* CLAVE
* https://lcamtuf.coredump.cx/gcnc/