Metaboard is a bash shell script, that will automatically create cnc-paths in the form of gcode files. The starting point is the eagle .brd file.

Metaboard is a bash shell script, that will automatically create cnc-paths in the form of gcode files. The starting point is the eagle .brd file.

+

It will be published, if it is working a little bit more reliable...

+

It calls a couple of external programs:

It calls a couple of external programs:

* [http://www.cadsoft.de/ Eagle]: to output the gerber files of the top and bottom layer

* [http://www.cadsoft.de/ Eagle]: to output the gerber files of the top and bottom layer

Zeile 201:

Zeile 203:

* if you really want things to be perfect, you could locate the most outwards line in the isolation, and move them deeper Z-0.1 ->Z-0.12 and the following relative up-movent as well Z0.1 ->Z0.12. By that, there will be no copper close to the cutting locations.

* if you really want things to be perfect, you could locate the most outwards line in the isolation, and move them deeper Z-0.1 ->Z-0.12 and the following relative up-movent as well Z0.1 ->Z0.12. By that, there will be no copper close to the cutting locations.

If the board is not mounted completely flat, the isolation might be not deep enough, and hence there are short circuits.

Sometimes, flakes of copper short circuit neighboring copper areas. Usually at corners. A knife helps.

Dust.

Loud.

Capacity between adjacent copper areas.

Hotter soldering is required, as there are no thermal pads.

0805 SMD resistors work fine, although the solder locations are not visible any more. However, SMD chips are probably to small

Metaboard.sh

Metaboard is a bash shell script, that will automatically create cnc-paths in the form of gcode files. The starting point is the eagle .brd file.
It will be published, if it is working a little bit more reliable...

eagle: to call an ulp-program "drillbernhard.ulp" that outputs the drilling and cutting paths.

Visolate: To create the isolation paths. We use an unreleased version, that is scriptable.

grecode To mirror the board for second side. (Grecode was created especially for metaboard.sh by --Bkubicek 09:55, 26. Jul. 2010 (CEST))

While these are called, a couple of windows will pop up and hopefully disappear again.

Possible issues:

Eagle sometimes stays on top: just close the opened .brd, and load your .brd again using the menu. If have no clue why this happens.

It might be necessary to have a parent project file in the same directory?

Usage

The workflow splits into the following points:

Preperation: create an eagle brd file, copy it

Metaboard.sh: create the gcode files for the geilomat

Setup: mount the board in the geilomat, insert a suitable mill head.

EMC-setup: home the machine, "touch off"/set coordinate system so milling will be on the actual board

Bottom layer:

drilling and cutting

Isolation-milling

For single sided boards, the process stops here.

Flipping the board, mounting it.

Top layer:

Loading the top layer debugging file.

Aligning: Rotate and shift the top layers using grecode, so that the new gocde matches the mounted board.

Isolate the top.

Create yourself a directory in ~/gcodes/ and copy your .brd file there.
Then open up a shell window, move to the directory call

metaboard.sh yourboard.brd

If all goes well, you will obtain a lot of *.ngc files, that contain [Gcode] for the CNC process. Also, a tmp directory will be created, where there are even more files.
The files in the original directoy are:

xxx_top.ngc: The top layer isloation paths.

xxx_bottom.ngc: The bottom layer isloation paths.

xxx_drillcuttop.ngc: The top layer drilling and cutting.

xxx_drillcutbottom.ngc: The bottom layer drilling and cutting.

xxx_debug.ngc: A file so you can view the content of all the other files at once, to check for errors, or measure coordinates..

Preperation

Then you start linuxcnc.org/ EMC on the computer next to the geilomat. You load the xxx_debug.ngc file and look at it really intense to see weather it is correct.

Then you press the home-all bottom, and the mill will move to its home position on the close left corner in front of you.

Mount the board using the thin double sided tape and stick it to the flat-milled piece of wood.

You want to insert a 0.8 mm mill-head in the Kress (a drill might break in the the sidewards cutting movement).
Then you move to one location just above the mounted PCB, and set the working coordinate system using "touch off" in X and Y. For the Z, you move next to the PCB, and go tiny bit deeper than the lower board edge, and touch off at the lowest z-coordinate value, which should be -2.5 mm. For security, move up so that the mill can move freely thereafter.

Bottom Layer

Load the xxx_bottomdrillcut.ngc file.

For the drilling, set the Kress to speed "5".

Close the geilomat-latch. Turn the spindle on in EMC so that the Kress rotates. Press the play button and watch out for problems. Stop with the Stop button, or with F1. After an emergency off with F1, you maybe have to reposition the machine. Try not to be overwhelmed by all the noise and awesomeness.

After the drilling and cutting has finished, move the mill so you can change the mill-head to a 0.1mm-0.3mm 30°-45° "Gravierstichel".Then, right next to the side of the board, or onto an hole, and touch off Z so that zero is ~0.3mm underneath the surface. Check the flatness of the board, and if there are problems, move deeper into the board.

Load the xxx_bottom.ngc file. Isolate the bottom.

Top layer

Then remove the board, remove the sticky tape, and clean the surface a bit. Mount a new batch of tape to the milled surface, and glue it onto the wood so that you see the to-be top layer.

load the xxx_debug file.
Define two positions on the board that you identify both on the mounted board and the in the software. Only drill holes or cut-corners on the flipped top surface are suitable !
Read the coordinates of this points in EMC by clicking at the line and reading the X-Y coordiates in the gcode-text-view. Write them down.

Move the mill to the same locations, and write down the coordinates displayed in the 3d-window.

This will produce a shift-rotated gcode file xxx_topnew.ngc.
Touch off the Z-height to a suitable value.
Load xxx_topnew.ngc and isolate the top.

Metaboard background info

This is the manual workflow, that is now obsolete as most steps are done by metaboard.sh.

The PCB have to be put on a plain-milled surface of at least 3 mm thickness, as we are drilling.
The slightest bend (0.2 mm) in the PCB will probably move the "Gravierstichel" out of the plane where it would isolate.
You need a 0.6 or 0.8 mm drill with a mounting diameter suitable for the Kress-"Spannzange", probably 3mm or 1/8 inch=3.1something.

We will create three ngc-files, one for the isolation, one for the drilling, and one for the final cutting. They will be glued together in one ngc file to align them graphically using Axis.

then add the content of isolate_boardname.ngc without the m5 m3 tail. The isolation has relative coordinates, so we have to set a proper starting location via the previous head. Also, moving to the assumed Z=0 position would already mill the board, so we have to change the first Z move.
comment out the first move to Z-0.01
it could look something like this

after the isolation we will insert the content of drill_boardname.ngc
adjust the variables posdown to -2.1 posup to 1, feedown to 100,feedup to 200
after the cutting, create some blank lines and insert a section of cut_boardname.ngc, namely the part between (Start cutting wires) and (finished). This movements cut out the pcb from the surrounding.
Maybe you have to invert all Y coordinates because of the mirroring

The complete file then should have some head, the isolation, the drilling and the cutting.

Open this ngc file in axis, and adjust the relative position of the drills to the isolation by the G0 X Y in the head, saving and reloading in axis.

after all is good, remove the commend right before the drilling, to have the the program stop there. Reload in axis. Insert a 30 Degree 0.1 or 0.2 mm "Gravierstichel", home the machine, touch off at a suitable location, and start the program.

If the isolation is not deep enough, touch off z in lower height, and restart.

Then Change to a 0.6 mm drill with a 3.12mm 1/8 inch holing diameter, touch of Z again, and re-insert the comment right before the drilling.

Reload in Axis, scroll to the line right before the drilling, right click->run from here.

do all the drilling and sidewards cutting.

if you really want things to be perfect, you could locate the most outwards line in the isolation, and move them deeper Z-0.1 ->Z-0.12 and the following relative up-movent as well Z0.1 ->Z0.12. By that, there will be no copper close to the cutting locations.