KiCAD i pcb2gcode

De Wikijoan
Dreceres ràpides: navegació, cerca

Contingut

KiCAD. Introducció

KiCad 4.0.7 was released in August 2017.

Instal.lació

KiCad 4.0.7 was released in August 2017.

sudo add-apt-repository --yes ppa:js-reynaud/kicad-4
sudo apt-get update
sudo apt-get install kicad

M'ha quedat instal.lada la versió 4.0.7 (en una màquina Ubuntu actualitzada)

Documentació - tutorial

Tots els meus projectes penjaran de /home/joan/kicad. Si vull crear el projecte tutorial1, el primer que faré és crear la carpeta /home/joan/kicad/tutorial1, i com que vull versionar els meus projectes, crearé la carpeta v1 a dins. Crearé un projecte dins d'aquesta carpeta que es dirà /home/joan/kicad/tutorial1/v1/tutorial1.pro.

Més tard es veurà com es pot partir d'una versió del projecte, i copiar-lo a la següent versió.

Getting Started:

Aquest és el projecte que ja havia fet en una versió anterior de KiCAD, el torno a repetir ara que tinc instal.lada la versió 4.0.7.

In general, it is recommended to use a grid of 50.0 mils for the schematic sheet. Utilitzaré per defecte mm com a mesura, però molts aspectes els mesusraré amb mils, com ara les pistes, o la graella de 50 mils.

Preferences > Schema Editor Options. Measurement units: millimeters. Les altres opcions les deixo per defecte.

En el Pcbnew, vaig al Design Rules Editor > Global Design Rules,i allà fico 5 amplades de pistes de referència:

1,27 mm = 50 mils (0,050 * 25,4 = 1,27)
1,016 mm = 40 mils
0,762 mm = 30 mils
0,508 mm = 20 mils
0,254 mm = 10 mils

I quan surto, ara ja apareix en el selector de tracks totes aquestes opcions.

Des del PCB, View > 3D Viewer per veure com queda el resultat final, un cop muntats els components segons la informació del footprint.

Generar els gerber files. Dins de v1 creo la carpeta v1/gerber, per tal de no fer molt de lio amb els fitxers. Per a una placa de dues capes s'utilitzen aquestes capes:

File > Plot > botó Plot (escollir el format Gerber, opció per defecte).

Utilitzo l'eina GerbView per veure com queden les diferents capes.

Anem a fer la versió 2. Tanquem kicad. Creem la carpeta v2 i hi copies tots els fitxers de la v1. Amb el gedit obrim els fitxers. Els fitxers que tenen extensió .bak no cal copiar-los. Cerquem dins els fitxers i reemplace v1 per v2.

Aquesta és una manera casolana de versionar, no sé si n'hi ha alguna de millor, però aquesta ha de funcionar bé.

Obro kicad, obro el projecte que penja de v2, i ara ja puc continuar. Anem a subsituir alguns footprints i anem a veure com funciona el forward annotation.

En l'esquemàtic, canvio el que hagi de canviar. Canvio els footprints que hagi de canviar, i torno a generar la netlist. En el pcbnew torno a llegir la netlist, i he de ficar l'opció Exchange footprint: change, Extra footprints: delete.

Ara en el pcbnew ja puc fer les connexions que falten i reposicionar els nous elements. Si tinc fet un ratsnet del GND, el puc eliminar (Supr). Recordar que per moure els components i que les pistes connectades també es moguin, he de fer servir la tecla g en comptes de m.

Si un component no el trobo a les llibreries, es pot buscar online:

Canviar l'origen de coordenades. Fins ara he treballat sobre un DINA-4. Però de cara a generar els fitxers de drill i gerber, és important que el meu origen sigui el bottom-left de l'esquemàtic. Això es fa amb l'eina: Add layer alignment target

KiCAD. Dubtes i troballes

1. How to rip-up a track. És a dir, un cop he fet la pista, la vull desfer (però mantenint la connexió). Efectivament és amb Delete de la pista, però compte que a vegades més que fer el rip-up s'esborra tota la pista. Si no em surt, el que he de fer és Edit > Delete.

2. Com ficar forats directament en el PCB?

Més que ficar forats, el que he de fer és ficar un pin-hole (pinheader) d'un sol forat, i ja ho tindré. Aquest pinheader l'he de ficar en l'esquemàtic. Això em passarà quan vull fer un pont manualment, que he de ficar dos pinheaders, i després soldaré un cable entre l'un i l'altre. Per exemple, els dos pinheaders els puc anomenar pont1a i pont1b per indicar que seran un pont. Això ho he de fer a posteriori, en el back-annotation, quan estigui fent les pistes i vegi que he de ficar un pont.

Contorn del PCB: Edge.Cuts

A KiCAD, en el Pcbnew hi ha la capa Edge.Cuts. Utlitzo l'eina Add Graphic Line or Polygon per fer el contorn, en la capa Edge.Cuts.

Ara ja puc generar el Gerber del contorn: File > Plot:

Es crea el fitxer gerber/maria_led_timer-Edge.Cuts.gbr, que podem visualitzar en el GerbView.

Amb el 'pcb2gcode també es pot generar el ngc per tallar la placa, tal com s'explica més avall: KiCAD_i_pcb2gcode#Contorn:_outline.2C_Edge.Cuts.

Tutorial: fer un footprint

Fer un footprint d'un component és un dels temes que estan explicats en el tutorial introductori. Faré un cas pràctic. He comprat varis:

que és un mòdul de so MP3 per utilitzar en els audiobook. És un component molt senzill: son 16 pins (8+8). Cada pins està separat el estàndar de 2,54mm, i està disposat en dues files separades per 1,5mm. El nom dels pins és:

  RESET 1*       *16 VDD
AUDIO-L 2*       *15 P06
     NC 3*       *14 NC
   SPK+ 4*       *13 NEXT
   SPK- 5*       *12 PREVIOUS
     NC 6*       *11 NC
   VOL+ 7*       *10 VOL-
    GND 8*       *9 PLAY/PAUSE

El tutorial consta de tres parts: 1) com crear l'esquemàtic; 2) com crear el footprint; 3) com crear la llibreria amb aquest nou component.

WTV020-SD-16P: crear l'esquemàtic

Utilitzarem el Component Library Editor (part del Eeschema). En el nostre projecte audiobook/v1 crearem la carpeta library.

Dins del Eeschema (estem treballant en el nostre projecte), cliquem sobre el Library Editor.

Create New Component icon:

i deixem la resta d'opcions per defecte. Ara hem d'afegir pins (Add pins). Per exemple, el primer pin (RESET):

I així anem fent fins a crear els 16 pins.

El component ha d'estar en el centre (allà on hi ha la creu blava). Add Rectangle per fer un rectangle que encapsuli tots els pins que hem creat.

Save current component to new library. L'anomenarem audiobook.lib

This library will not be available until it is loaded by Eeschema. Modify the Eeschema library configuration if you want to include it as part of this object.

Go to Preferences > Component Libraries and add both audiobook/v1/library/ in User defined search path and audiobook.lib in Component library files.

Click on the Select working library icon (library_png) .In the Select Library window click on audiobook and click OK. Notice how the heading of the window indicates the library currently in use, which now should be audiobook.

Click on the Update current component in current library icon (save_part_in_mem_png) in the top toolbar. Save all changes by clicking on the Save current loaded library on disk icon (save_library_png) in the top toolbar. Click Yes in any confirmation messages that appear. The new schematic component is now done and available in the library indicated in the window title bar.

You can now close the Component library editor window. You will return to the schematic editor window. Your new component will now be available to you from the library audiobook.

WTV020-SD-16P: crear el footprint

KiCad .lib files contain schematic symbols and .kicad_mod files contain footprints. Cvpcb is used to successfully map footprints to symbols.

From the KiCad project manager start the Pcbnew tool. Click on the Open Footprint Editor icon (edit_module_png) on the top toolbar. This will open the Footprint Editor.

We are going to save the new footprint WTV020-SD-16P in the new footprint library audiobook_footprint. Create a new folder audiobook/v1/footprint. Click on the Preferences > Footprint Libraries Manager and press Append Library button. In the table, enter "audiobook" as Nickname, enter "${KIPRJMOD}/footprint" as Library Path and enter "KiCad" as Plugin Type. Press OK to close the PCB Library Tables window.

Click on the Select active library icon (library_png) on the top toolbar. Select the audiobook library.

Click on the New Footprint icon (new_footprint_png) on the top toolbar. Type WTV020-SD-16P as the footprint name. In the middle of the screen the WTV020-SD-16P label will appear. Under the label you can see the REF* label. Right click on WTV020-SD-16P and move it above REF*. Right click on REF__*, select Edit Text and rename it to SMD. Set the Display value to Invisible.

Select the Add Pads icon (pad_png) on the right toolbar. Click on the working sheet to place the pad. Right click on the new pad and click Edit Pad. You can otherwise use the e key shortcut.

En el nostre cas, com que és un component through-hole, ficarem pad through-hole i circular. Els pads estan separats 2,54mm, i això és fàcil de posicionar si tinc escollit el grid de 50 mils 1,27mm). Fiquem el 16 pads amb la geometria correcta. La separació de 1,5cm segurament és 1,27x12=15,24mm, i així queda ben posicionat sobre el grid.

Now add a footprint contour. Click on the Add graphic line or polygon button add_polygon_png in the right toolbar. Draw an outline of the connector around the component. Aquest contorn està associat a la capa F.Silk.

Click on the Save Footprint in Active Library icon (save_library_png) on the top toolbar, using the default name WTV020-SD-16P.

WTV020-SD-16P: Utilitzar el component

Des del Eeschema, faig servir l'eina CvPCB to associate components and footprints

I aleshores ja puc fer l'associació. M'ha de sortir el footprint anomenat audiobook:WTV020-SD-16P

pcb2gcode. Instal.lació des de les fonts

Jo he estat utilitzant el pcb2gcode des del Eagle CAD. Ara es tracta d'utilitzar-lo com a eina independent, des dels projectes de KiCAD.

pcb2gcode is a command-line software for the isolation, routing and drilling of PCBs. It takes Gerber files as input and it outputs gcode files, suitable for the milling of PCBs. It also includes an Autoleveller, useful for the automatic dynamic calibration of the milling depth.

També existeix el projecte pcb2gcodeGUI

A Ubuntu existeix el paquet pcb2gcode, però està molt desfasat. Per tant l'hem de compilar des de les fonts:

$ git clone https://github.com/pcb2gcode/pcb2gcode.git
$ cd pcb2gcode

$ sudo apt-get install software-properties-common python-software-properties
$ sudo add-apt-repository "ppa:ubuntu-toolchain-r/test"
$ sudo apt-get update
$ sudo apt-get install g++-4.8
$ export CXX=g++-4.8

$ sudo apt install autoconf

$ autoreconf -fvi

error:
autoreconf: configure.ac: not using Libtool
solució: libtool --version

$ ./configure
error:
checking for Boost headers version >= 1.56.0... no
configure: error: cannot find Boost headers version >= 1.56.0

Descarreguem boost_1_65_0.tar.gz
$ ./bootstrap.sh --with-libraries=program_options
$ ./b2 variant=release link=static
The Boost C++ Libraries were successfully built!

The following directory should be added to compiler include paths:

/home/joan/boost_1_65_0

The following directory should be added to linker library paths:

/home/joan/boost_1_65_0/stage/li

$ sudo ./b2 install

Tornem a fer el configure:
Then add --with-boost=<boost install directory> --enable-static-boost to the ./configure command.

$ export LDFLAGS='-L/home/joan/boost_1_65_0/stage/li'
$ export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:/home/joan/boost_1_65_0/stage/li

$ ./configure --with-boost=/home/joan/boost_1_65_0 --enable-static-boost
checking for Boost headers version >= 1.56.0... /home/joan/boost_1_65_0
checking for Boost's header version... 1_65
checking for the toolset name used by Boost for g++-4.8... gcc48 -gcc
checking boost/program_options.hpp usability... yes
checking boost/program_options.hpp presence... yes
checking for boost/program_options.hpp... yes
checking for the Boost program_options library... no
configure: error: cannot find the flags to link with Boost program_options

sudo apt-get install libboost-all-dev
s'instal.la boost 1.58, que de fet ja està bé doncs és > 1.56

NOTA: tots els meus problemes s'han resolt en reiniciar el sistema.

$ ./configure
...
configure: error: Package requirements (glibmm-2.4 >= 2.8) were not met:
No package 'glibmm-2.4' found
configure: error: Package requirements (gdkmm-2.4 >= 2.8) were not met:
No package 'gdkmm-2.4' found
No package 'libgerbv' found

$ sudo apt-get install libglibmm-2.4-dev
$ sudo apt-get install libgtkmm-2.4-dev (compte! instal.lo libgtkmm-2.4-dev en comptes de libgdkmm-2.4-dev, que no existeix)
$ sudo apt-get install gerbv

Finalment ja puc fer el 
$ ./configure
$ make
$ sudo make install

$ pcb2gcode --help
pcb2gcode 1.3.2
$ pcb2gcode --help
pcb2gcode 1.3.2

command line only options:
  --noconfigfile [=arg(=1)] (=0) ignore any configuration file
  -? [ --help ]                  produce help message
  --version                      show the current software version
generic options (CLI and config files):
  --front arg                           front side RS274-X .gbr
  --back arg                            back side RS274-X .gbr
  --outline arg                         pcb outline polygon RS274-X .gbr
  --drill arg                           Excellon drill file
  --svg arg                             [DEPRECATED] use --vectorial, SVGs will
                                        be generated automatically; this option
                                        has no effect
  --zwork arg                           milling depth in inches (Z-coordinate 
                                        while engraving)
  --zsafe arg                           safety height (Z-coordinate during 
                                        rapid moves)
  --offset arg                          distance between the PCB traces and the
                                        end mill path in inches; usually half 
                                        the isolation width
  --voronoi [=arg(=1)] (=0)             generate voronoi regions (requires 
                                        --vectorial)
  --mill-feed arg                       feed while isolating in [i/m] or [mm/m]
  --mill-vertfeed arg                   vertical feed while isolating in [i/m] 
                                        or [mm/m]
  --mill-speed arg                      spindle rpm when milling
  --milldrill [=arg(=1)] (=0)           drill using the mill head
  --milldrill-diameter arg              diameter of the end mill used for 
                                        drilling with --milldrill
  --nog81 [=arg(=1)] (=0)               replace G81 with G0+G1
  --nog91-1 [=arg(=1)] (=0)             do not explicitly set G91.1 in drill 
                                        headers
  --extra-passes arg (=0)               specify the the number of extra 
                                        isolation passes, increasing the 
                                        isolation width half the tool diameter 
                                        with each pass
  --fill-outline [=arg(=1)] (=1)        accept a contour instead of a polygon 
                                        as outline (enabled by default)
  --outline-width arg                   width of the outline, used only when 
                                        vectorial is disabled
  --cutter-diameter arg                 diameter of the end mill used for 
                                        cutting out the PCB
  --zcut arg                            PCB cutting depth in inches
  --cut-feed arg                        PCB cutting feed in [i/m] or [mm/m]
  --cut-vertfeed arg                    PCB vertical cutting feed in [i/m] or 
                                        [mm/m]
  --cut-speed arg                       spindle rpm when cutting
  --cut-infeed arg                      maximum cutting depth; PCB may be cut 
                                        in multiple passes
  --cut-front [=arg(=1)]                [DEPRECATED, use cut-side instead] cut 
                                        from front side. 
  --cut-side arg (=auto)                cut side; valid choices are front, back
                                        or auto (default)
  --zdrill arg                          drill depth
  --zchange arg                         tool changing height
  --zchange-absolute [=arg(=1)] (=0)    use zchange as a machine coordinates 
                                        height (G53)
  --drill-feed arg                      drill feed in [i/m] or [mm/m]
  --drill-speed arg                     spindle rpm when drilling
  --drill-front [=arg(=1)]              [DEPRECATED, use drill-side instead] 
                                        drill through the front side of board
  --drill-side arg (=auto)              drill side; valid choices are front, 
                                        back or auto (default)
  --onedrill [=arg(=1)] (=0)            use only one drill bit size
  --metric [=arg(=1)] (=0)              use metric units for parameters. does 
                                        not affect gcode output
  --metricoutput [=arg(=1)] (=0)        use metric units for output
  --optimise [=arg(=1)] (=1)            Reduce output file size by up to 40% 
                                        while accepting a little loss of 
                                        precision (enabled by default).
  --bridges arg (=0)                    add bridges with the given width to the
                                        outline cut
  --bridgesnum arg (=2)                 specify how many bridges should be 
                                        created
  --zbridges arg                        bridges height (Z-coordinates while 
                                        engraving bridges, default to zsafe) 
  --tile-x arg (=1)                     number of tiling columns. Default value
                                        is 1
  --tile-y arg (=1)                     number of tiling rows. Default value is
                                        1
  --al-front [=arg(=1)] (=0)            enable the z autoleveller for the front
                                        layer
  --al-back [=arg(=1)] (=0)             enable the z autoleveller for the back 
                                        layer
  --software arg                        choose the destination software (useful
                                        only with the autoleveller). Supported 
                                        programs are linuxcnc, mach3, mach4 and
                                        custom
  --al-x arg                            width of the x probes
  --al-y arg                            width of the y probes
  --al-probefeed arg                    speed during the probing
  --al-probe-on arg (=(MSG, Attach the probe tool)@M0 ( Temporary machine stop. ))
                                        execute this commands to enable the 
                                        probe tool (default is M0)
  --al-probe-off arg (=(MSG, Detach the probe tool)@M0 ( Temporary machine stop. ))
                                        execute this commands to disable the 
                                        probe tool (default is M0)
  --al-probecode arg (=G31)             custom probe code (default is G31)
  --al-probevar arg (=2002)             number of the variable where the result
                                        of the probing is saved (default is 
                                        2002)
  --al-setzzero arg (=G92 Z0)           gcode for setting the actual position 
                                        as zero (default is G92 Z0)
  --dpi arg (=1000)                     virtual photoplot resolution
  --vectorial [=arg(=1)] (=0)           EXPERIMENTAL!! Enable the experimental 
                                        vectorial core
  --zero-start [=arg(=1)] (=0)          set the starting point of the project 
                                        at (0,0)
  --g64 arg                             [DEPRECATED, use tolerance instead] 
                                        maximum deviation from toolpath, 
                                        overrides internal calculation
  --tolerance arg                       maximum toolpath tolerance
  --nog64 [=arg(=1)] (=0)               do not set an explicit g64
  --mirror-absolute [=arg(=1)] (=0)     mirror back side along absolute zero 
                                        instead of board center
  --output-dir arg                      output directory
  --basename arg                        prefix for default output file names
  --front-output arg (=front.ngc)       output file for front layer
  --back-output arg (=back.ngc)         output file for back layer
  --outline-output arg (=outline.ngc)   output file for outline
  --drill-output arg (=drill.ngc)       output file for drilling
  --preamble-text arg                   preamble text file, inserted at the 
                                        very beginning as a comment.
  --preamble arg                        gcode preamble file, inserted at the 
                                        very beginning.
  --postamble arg                       gcode postamble file, inserted before 
                                        M9 and M2.
  --no-export [=arg(=1)] (=0)           skip the exporting process

pcb2gcode amb KiCAD

Dades que funcionen bé amb Eagle

A partir de l'experiència prèvia de fer córrer el plugin de pcb2gcode des de Eagle, els paràmetres que funcionen bé són:

Drill

En el board del KiCAD, important, Place > Origin. D'aquesta manera tinc l'origen en el meu PCB, i no en el Din A4.

Anem a fer primer proves amb el drill.

Des del board del kicad fem File > Plot > Generate Drill File, que és el mateix que File > Fabrication Outputs > Drill File

Opcions:

$ cd kicad/maria_led_timer/v1/gerber/
$ pcb2gcode --drill maria_led_timer.drl --drill-output maria_led_timer_drill.ngc --metric --metricoutput --zsafe 2.54 --zchange 20 --zdrill -2.00 --drill-feed 254 --drill-speed 200 --drill-side front

i es genera el tutorial1_v2_drill.ngc, que podem obrir amb el LinuxCNC. Tot correcte.

Profunditat: és millor ficar -2.00 en comptes de -1.75 (que seria el gruix real de la placa), és a dir, donar una mica més de marge, i no cal fer el adjusted de l'autolevel. Quan canviem la broca de fresar (v-shape) per la broca de foradar (0.7mm), s'ha de reposicionar la broca. En el cas del drill, el z=0 és tocant el coure.

opció: --drill-side arg (=auto). Si és d'una sola capa, he de fer --drill-side front|back en funció del que vulgui (si són components SMD, Through-hole, o mixt). De fet, si tinc una sola capa no cal posar aquesta opció, doncs per defecte és la mateixa que la capa d'etching.

Etching: front

File > Plot. Només escullo F-Cu (la pista de dalt, Front). Important l'opció Use auxiliary axis as origin, igual que feia amb el drill (és l'origen de coordenades que he ficat en el meu PCB).

Es genera maria_led_timer-F.Cu.gbr

Front i Back: hi ha els mateixos paràmetres per a front i back. En l'exemple que faig servir només hi ha front.

$ pcb2gcode --front maria_led_timer-F.Cu.gbr --front-output maria_led_timer-F.Cu.ngc --metric --metricoutput --zsafe 2.54 --zchange 20 --zwork -0.1778 --offset 0.127 --extra-passes 1 --mill-feed 254 --mill-speed 200

Paràmetres importants:

Llegint detingudament els paràmetres, el offset seria la meitat del isolation width, i el isolation width seria la meitat del diàmetre de la broca. El diàmetre de la broca és diferent si utilitzo broques V-Shape de 10º, 20º o 40º. Jo utilizo les de 20º perquè tenen més resolució, i les de 10º se'm trencaven. En qualsevol cas, el offset és un paràmetre que he trobat a base d'error i assaig, tenint en compte que utilitzo les broques de 20º.

Interessant: es genera la imatge: outp1_traced_front.png, on podem comprovar el resultat.

--offset 0.127 --extra-passes 1 crec que són bons paràmetres (en el Eagle feia 2 passos amb un bon resultat, extrapass=1). Cada pas representa una separació de 0,127mm. z-work és la profunditat de la pista de coure, una mica més clar. Recordar que el resultat de la profunditat dependrà de la broca (utilitzo V-shape de 20º). Si en comptes de offset=0.127 faig offset=0.15, queda efectivament una mica més separat, però també queda bé.

Etching: front i back

$ pcb2gcode --front maria_led_timer-F.Cu.gbr --front-output maria_led_timer-F.Cu.ngc --back maria_led_timer-B.Cu.gbr --back-output maria_led_timer-B.Cu.ngc --metric --metricoutput --zsafe 2.54 --zchange 20 --zwork -0.1778 --offset 0.127 --extra-passes 1 --mill-feed 254 --mill-speed 200

Contorn: outline, Edge.Cuts

A KiCAD, en el Pcbnew hi ha la capa Edge.Cuts. Utlitzo l'eina Add Graphic Line or Polygon per fer el contorn, en la capa Edge.Cuts.

Ara ja puc generar el Gerber del contorn: File > Plot:

Es crea el fitxer gerber/maria_led_timer-Edge.Cuts.gbr, que podem visualitzar en el GerbView.

Ara ja podem amb pcb2gcode crear el G-Code per tallar la placa.

Ara és important indicar, a part dels fitxers d'entrada i de sortida, la profunditat de tall per tallar la meva placa (--zcut) i el diàmetre de la meva broca (--cutter-diameter), Board cutting feed (--cut-feed, mm/min), Board cutting infeed (--cut-infeed, aquest paràmetre és important, doncs crec que és el que determina el número de passades, és el típic 1.5mm)

El funcionament del --cut-infeed es fa de manera que reparteix la profunditat entre les diferents passades. Per exemple, si vull tallar a 2mm amb --cut-infeed de 1.5mm (que vol dir 2 passades), en comptes de fer una passada de 1,5 i una altra de 0,5, ho ha de manera que les dues passades siguin de 1mm. És a dir, primer calcula el número de passades, i després les reparteix.

$ pcb2gcode --outline maria_led_timer-Edge.Cuts.gbr --outline-output maria_led_timer_outline.ngc --metric --metricoutput --zsafe 2.54 --zchange 20 --zcut -2.0 --cutter-diameter 2.0 --cut-feed 200 --cut-speed 200 --cut-infeed 1.5

Tot junt: Drill i etching (front i back)

$ pcb2gcode --drill maria_led_timer.drl --drill-output maria_led_timer_drill.ngc --front maria_led_timer-F.Cu.gbr --front-output maria_led_timer-F.Cu.ngc --back maria_led_timer-B.Cu.gbr --back-output maria_led_timer-B.Cu.ngc --metric --metricoutput --zsafe 2.54 --zchange 20 --zwork -0.1778 --offset 0.127 --extra-passes 1 --mill-feed 254 --mill-speed 200 --zdrill -2.00  --drill-feed 254 --drill-speed 200 --drill-side back

opció --drill-side arg (=auto) . Quan tinc doble capa, el criteri és primer fer el etching del front, després el back, i finalment fer el drill pel cantó del back. Per tant, farem --drill-side back.

Tot junt: Drill, etching (front i back), outline

$ pcb2gcode --drill maria_led_timer.drl --drill-output maria_led_timer_drill.ngc --front maria_led_timer-F.Cu.gbr --front-output maria_led_timer-F.Cu.ngc --back maria_led_timer-B.Cu.gbr --back-output maria_led_timer-B.Cu.ngc --outline maria_led_timer-Edge.Cuts.gbr --outline-output maria_led_timer_outline.ngc --metric --metricoutput --zsafe 2.54 --zchange 20 --zwork -0.1778 --offset 0.127 --extra-passes 1 --mill-feed 254 --mill-speed 200 --zdrill -2.00  --drill-feed 254 --drill-speed 200 --drill-side back --zcut -2.0 --cutter-diameter 2.0 --cut-feed 200 --cut-speed 200 --cut-infeed 1

Altres opcions

Bridges: en comptes de tallar el outline, puc fer uns ponts de manera que la placa PCB no es desprengui. Puc definir el número de ponts, i la profunditat a què s'han de tallar els ponts. La idea és que es pugui acabar de tallar amb les mans.

Autoprobe (TBD)

El pcb2gcode porta integrat el codi per poder fer el autoprobe (compensació per la falta d'anivellament en la superfície del PCB).

Amb el Eagle jo ja feia el autoprobe (amb l'eina Gcoderipper), de la següent manera, resumint:

Ara, directament amb el pcb2gcode, el procés és més ràpid, perquè m'estalvio tots els fitxers intermitjos, i quan s'acaba la fase de probe ja es va directament a fresar.

Les opcions relacionades amb el autoprobe són:

--al-front [=arg(=1)] (=0)            enable the z autoleveller for the front layer
--al-back [=arg(=1)] (=0)             enable the z autoleveller for the back  layer
--software arg                        choose the destination software (useful only with the autoleveller). Supported programs are linuxcnc, mach3, mach4 and custom
--al-x arg                            width of the x probes
--al-y arg                            width of the y probes
--al-probefeed arg                    speed during the probing
--al-probe-on arg (=(MSG, Attach the probe tool)@M0 ( Temporary machine stop. )). execute this commands to enable the probe tool (default is M0)
--al-probe-off arg (=(MSG, Detach the probe tool)@M0 ( Temporary machine stop. )). execute this commands to disable the probe tool (default is M0)
--al-probecode arg (=G31)             custom probe code (default is G31)
--al-probevar arg (=2002)             number of the variable where the result of the probing is saved (default is 2002)
--al-setzzero arg (=G92 Z0)           gcode for setting the actual position as zero (default is G92 Z0)
.

--al-probefeed arg: entenc que aquesta és la velocitat vertical del probe, que ha de ser molt petit. Probem --al-probefeed = 10

$ pcb2gcode --front maria_led_timer-F.Cu.gbr --front-output maria_led_timer-F.Cu_adjusted.ngc --al-front --software linuxcnc --metric --metricoutput --zsafe 2.54 --zchange 20 --zwork -0.1778 --offset 0.127 --extra-passes 1  --mill-feed 254 --mill-speed 200 --al-x 50 --al-y 50 --al-probefeed 10 --al-probe-on M0 --al-probe-off M0 --al-probecode G31 --al-setzzero G92 Z0

Per compatibilitat amb com ho feia abans, fico el sufix adjusted en el fitxer de sortida per indicar que estic fent autoprobe.


creat per Joan Quintana Compte, juliol 2017-octubre 2017

Eines de l'usuari
Espais de noms
Variants
Accions
Navegació
IES Jaume Balmes
Màquines recreatives
CNC
Informàtica musical
joanillo.org Planet
Eines