• If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • Finally, you can manage your Google Docs, uploads, and email attachments (plus Dropbox and Slack files) in one convenient place. Claim a free account, and in less than 2 minutes, Dokkio (from the makers of PBworks) can automatically organize your content for you.



Page history last edited by PBworks 13 years, 1 month ago


(in a fab lab of course)

What we are making:

A small, one-sided, surface mount circuit board called “Hello 2” which can blink a LED and send info out over the serial cable to you computer, or wherever.


What you will need:


Modela MDX-20 NC milling machine (or equivalent NC milling machine)

1/64th inch, 4 flute end mill for the milling

2- 2 inch X 2 inch pieces of FR2 board stock (this is one sided copper coating over an epoxy/paper base—circuit board stock, 2 pieces in case you mess the first one up)

double sided tape


1- ATTiny 15L microcontroller*

1 – 5V regulator *

1 – 2.2uf or 3.3 uf capacitor*

2 – 10K surface mount resistors*

1- Molex 4 pin serial connector*

Tweezers – fine tip

Fine tip soldering iron plus solder and desolder braid

Cam.py program (download for free from http://fab.cba.mit.edu/fab)

Eagle program (freeware version available for download from http://XXXXXXX)


For debugging:

1- 10X magnifying loupe

1- Multimeter


*All electronic components are surface mount, 1206 package. Please see inventory list at http://fab.cba.mit.edu/fab/inv.html-- Refer to Digikey vendor for electronic component part numbers.

**See inventory list: http://fab.cba.mit.edu/fab/inv.html, Carbide Depot for end mills, and Crossley and Bradley for FR2.







Start with downloading the circuit files from http://fab.cba.mit.edu/fab

Look for heading near the bottom of the page:


output: LED (hello2)


When you find it, you will see four linked files under that heading:




serial output

blink LED with serial output


Right click on each of these and download to your desktop or folder of choice.

The schematic (hello2.sch) and the PCB (hello2.brd) are both Eagle files. They contain the design of the circuit board. The serial output (hello2.asm) and blink LED (hello2.blink.asm) files are both programs that can be put into the microcontroller on your circuit board when you are finished making it- such that your circuit will do what you want it to do—like blink the LED at a certain rate, or send text messages to your computer monitor.


Now open the Eagle program. Your window will look like this:




In the menu bar go to File à Open à Schematic




Then navigate to the hello2.sch file and click on it. The schematic will open for you.




When you start to design a circuit board in Eagle, the first thing you do is figure out what parts you’re going to need on the circuit board and how they functionally connect to each other. That’s what the schematic does for you, helps you plan your circuit. For Hello 2 we’ve already done that for you but it’s useful now to help you find out what parts you need for your circuit board. The big rectangle with 8 little pins coming out of it is the ATTiny 15L microcontroller—you see ATtiny 15L under the right side of the part on the schematic. Similarly you see a rectangle with circles in it labeled “serial”. This is a Molex 4 pin serial connector. You’ll see a line with a curve under it that is labeled C1 2.2uf. This is a 2.2 microferret (sp?) capacitor. There’s also a rectangle with 3 pins coming out of it labeled “regulator”—that’s your 5V regulator. The triangle with a line at the tip is the symbol for a LED. The two jagged lines labeled R1 and R2 are resistors. As resistors come in different capacities, these resistors are also labeled 10K—meaning you specifically need 10,000 ohm resistors for this circuit board. (Ohm is a measurement of resistance.) All these parts you’ll get used to over time, but they are all found in Neil Gershenfeld’s Eagle library—which you’ll need to download from http://fab.cba.mit.edu/fab and install in your copy of Eagle, if it hasn’t already been installed for you.




Now that you know the parts you need, let’s look at the board layout. This is the file hello2.brd. On the schematic menu bar go to File à Open and this will pop up the navigation window. You’ll need to change the file type you search for to be “Boards (*.brd)”. Then navigate to your hello2.brd file and open it.




One little odd feature of Eagle is that the board file usually opens up UNDER the schematic, so if your screen doesn’t present you with a new file image, then just move the schematic over so that you see the board file as well.




The board file shows you the layout of exactly where and in what orientation the components will be placed on the board, and the copper traces that will connect them. This will be useful when we “stuff” , or solder the parts on the circuit board. But before we can fabricate this board, we need to translate the board layout to a set of instructions for the milling machine. The milling machine will take the FR2 copper board surface and mill away all the areas that we don’t want, leaving us only with the copper traces that we do want for conductivity. To make that set of instructions, or the file that the machine can understand we have to convert our hello2.brd file into a hello2.cmp file. Look at the menu bar at the top of the board file. Go to File à CAM processor and click. This window opens for you.




First, in the Output section, lower left choose your device. From the pull down menu select GERBER_RS264X.




Next type in your file name, which should be hello2.cmp




Next go to the right side of the window where you’ll see a long column of Numbers and associated “Layers”. If you’ve noodled around on the inside of a consumer electronics device you’ve probably found circuit boards that were two sided, had a few layers and levels, etc. That’s what this column refers to. We’re making a very very simple circuit board, so we only want to retain information from our board file about the top layer of copper, any pads for components to sit upon, and the tracks that connect all the parts—called “vias”. So go down the list and deselect everything that is highlighted, then go back to the top and select only “1 Top Layer”, “16 Pads”, and “17 Vias”. Just those three layers are relevant to our board.




At the bottom of the CAM processor window you will see a button “Process Job”. Click on that button, and the hello2.cmp file will be created in the same directory where the rest of your hello2 files are located. Actually you’ll get two files: hello2.cmp and hello2.gpi. The .cmp file is what you want, that’s designed for the milling machine. The .gpi file is for making a flexible circuit out of copper adhesive tape on the vinyl cutter… but that’s another story for another day. You want .cmp and for now you can close Eagle.




Now we need to tell the Modela milling machine what to cut and how to cut it. We do this with a clever software tool developed by Prof. Gershenfeld called cam.py (translation: computer aided machining written in the python programming language. ) If you are in a fab lab, you should see the icon for CAM on your desktop. Double click on the icon to get the CAM window.

(If CAM is not on the desktop then go up to the UBUNTU menu bar and navigate to ApplicationsàAccessoriesàTerminal and click on Terminal. A Linux shell will open up. At the prompt type “CAM” or type “python cam.py” and the CAM window should open. )




At the top of the window you will see these buttons and parameters:




Input file button—click on it, navigate to your hello2.cmp file and open it. You will probably see a tiny little black square in the bottom left corner of the window.

You can make it more visible by either changing the number in the xy display size box (try the number 2) OR you can click on the next box auto and the file should just about fill your window.



The second line of buttons and boxes on the top menu bar starts with x min and y min. These refer to the origin of the x axis and the y axis on the bed of the milling machine. So the point where x = 0 and y = 0 on the milling machine is in the lower left corner. If you started milling with x=0 and y=0 , then your machine would start cutting right at the lower left corner of the milling machine bed. Probably not a great idea for several reasons, but a really good reason would be that the circuit stock may not be exactly square at the edge, and your board might not mill well. So we suggest that you change x and y to be 1 and 1 (CAM is in inches), or some other measurement that is away from the absolute edge of the cutting boundary. (Note: when you increase the numbers in these boxes, the design often disappears from the screen. Don’t worry, it’s still there, you just have to move the edge arrows around to find the object again in the window.) The placement of x and y becomes critical if you have a larger piece of material that you’ve already partially used and you want to exactly place your board in one of the leftover good sections.


The next parameter is the xy scale factor. This allows you to scale a file to be larger or smaller than the file you imported into CAM. So if I imported a heart shape into CAM that I thought was a bit small, I could double the size of my heart by changing this number to 2. OR I could make it smaller by changing this number to be .5.


Next to the scale factor, are dx: and dy: These tell you the size of your imported object. For the hello2.cmp file, the size is .945 inches by .665 inches. Pretty small.


Now check out the bottom of the CAM window where you see a bunch of other buttons.



For the sake of moving along here, I’ll briefly describe the options, and then describe our milling machine process in detail. Take a look at the output device menu below the output file button. This is where you determine what machine you are using and the file extension name. By selecting one of the different machines, you automatically pull up a set of tool parameters that relate to that machine, and if you look in the output file window above you’ll see that a file with the correct extension attached to it has been created. Click through the entire list of machines to see what happens to the tool options and file extensions. (Advanced fabricators might note here that you can import one kind of file, and by making certain selections, output another kind of file—which can get you out of some tight spots from time to time.) For your circuit board click on rml: Roland Modela NC Mill


You should always rename your output file in the box next to the output file button. Type in your new filename, including the extension (named after the machine you are using) and hit Enter. In our case we are using the Roland Modela machine, which we abbreviate as .rml—so your filename should be hello2.rml. Don’t forget to hit ENTER as this tells CAM to accept the name , the toolset and the parameters you’ve set thus far. Once you’ve done this you’ll have to reset x min and y min to 1 again as CAM won’t retain those numbers when you choose a new machine.


In the next row of buttons you’ll see contour boundary, raster interior, and write toolpath. Remember with our circuit board we want to etch away all the unwanted copper and just leave the traces that are important for connecting the components. So if we click on countour boundary, the program outlines in red all the areas that we want to keep.


Next click on the raster interior button. You will see a series of red lines fill in all the spaces that we want to etch away. These red lines represent the tool path—the route the end mill (like a drill bit) will follow as it etches away the copper.




write toolpath—this is the way you save the file with all of the parameters you’ve chosen. This allows you to open and mill the exact same file with the exact same dimensions, depth of cut, velocity etc. Click on this if you are sure the file is what you want. If you’re not sure yet, then it isn’t necessary to save this file.


z up tells you how high above the material the end mill should lift to move from one place to another. For our circuit board we just have to navigate across flat, thin material, so the number is small. The default setting of .05 inches is for circuit boards, so no need to change this number. This number would have to change significantly if you were milling a 3D object.


z down tells you how deeply into the material to cut. Again we are working with very thinly coated copper board, so our depth should be small. The default setting of -.005 is good for circuit boards, so don’t change this number. Again, if you are milling a 3D object, you would need to change this number significantly.


xy speed tells you how fast the mill runs in the x&y directions. z speed tells you how fast the mill runs in the z direction. The default settings are good for a circuit board so don’t change them.


tool diameter is the setting for the size of your end mill. The default setting is good for the 1/64th inch endmill we use for circuit boards, so don’t change this number.


contour undercut is a setting which controls where the center of the tool will cut in relation to the lines in your design object. It’s a way to let you precisely control whether the tool cuts on the line, just inside the line, or just outside the line. This setting comes in handy for instance if you are building a mosaic out of different materials and they all have to fit together snugly—that snugness can’t be accomplished if you cut all the parts right on the design lines. Some parts should be a little smaller and some parts should be slightly larger. This tool setting that gives you that kind of control. This isn’t needed for our circuit board, so leave the setting at 0.0.


raster overlap controls whether the milling path will overlap itself or whether each path through the material will be unique. (Find an example where raster overlap is important.)

The default setting is good for our circuit board, so leave the setting at 0.8.


Ok, to summarize our settings for the circuit board:

Output filename: hello2.rml

x min = 1, y min = 1, xy scale factor = 1

output deivce = .rml: roland Modela NC mill

z up = .05, z down = -.005

xy speed = 4, z speed = 4

Tool diameter = .0156

Contour undercut = 0

Raster overlap = .8

Once all these setting are in place you contour the boundaries, then raster the interior, and

now you are ready to send your board file to the machine for fabrication. Don’t push the Send to button yet! We have to prep the machine and the material.




Take one piece of FR2 copper board stock and turn it upside down so that the cooper is face side down. Put pieces of double sided tape on the back of the copper board. The area where you will be milling needs to be solidly attached to the surface of the Modela bed, so be sure to put lots of tape, close together on the back, but not overlapping at all.




The material bed on the Modela has a grid of cm sized squares. Place your material about 2 blocks over and 2 blocks up to accommodate your x min = 1 and y min = 1 settings in CAM. Now using a pioce of cloth or your shirtsleeve firmly adhere the board to the bed by pressing down and rubbing back and forth over the copper board. Don’t do this with your fingers as the oil from your skin can affect the conductivity of the copper traces, so try not to get to much finger old on the board.




Next task is to set the end mill into the correct position. The end mill rests in a position in the back of the machine. To put it in active mode, press the VIEW button on the control panel.




The end mill will move to its origin of x = 0, y = 0 (which is the lower left side of the bed). Now you want the mill to move to the x=1,y=1 position you set in CAM. To do this you must go back to the computer—in the Ubuntu menu bar navigate to Applications à Accessories àTerminal. Click on Terminal. A new screen pops up with a prompt. At the prompt type modela_setup, then hit ENTER. You will see a new prompt. Type move 1 1 and hit ENTER. You will see the endmill move to the 1, 1 position over the copper board.




Now back to the machine. We have to set the end mill into position now. Look at the endmill itself. You’ll see it is held in place by a collet with two inset screws on opposite sides of the collet.




Take the tiny allen wrench that comes with the Modela , hold on to the end mill (so you don’t drop it and break the fine, fragile end), and loosen the inset screws. Once the end mill is loose, push it up so that it is fairly high in the collet. Tighten the screws slightly so that the end mill is held in place but not too firmly. This is merely to get the end mill safely out of the way while you position the carriage.




Your next move is to bring the entire end mill carriage down to its lowest point --where the metal sides meet the metal base for the motor carriage. Do this by pushing and holding down the DOWN button on the control panel.




Now you want to back off of this position ever so slightly. So push and hold the UP button until the carriage moves up a little bit. What you are doing right now is indicating to the machine where Z = 0 is located. If you don’t back off from the lowest position, then the tool can’t drill into the material. That’s why you have to back up just a little bit—to give the mill the ability to drill down into the material.



Now again, hold onto the endmill with your finger, loosen the inset screws, and careful place the end mill on the surface of the copper. Now tighten the screws finger tight such that the end mill is firmly held in place.




Now you’re ready to cut your circuit board. Just for the safety of the end mill we should lift the end mill off of the surface just above where you are going to start cutting.

To do that, go back to the computer terminal screen and at the prompt type again:

move 1 1 . The end mill will lift into start position.






MILLING THE BOARD (The easy part):


OK, go back to your computer to the CAM window. Be sure .rml: Roland Modela NC Mill is still selected-- and hit the send to button. You will see the mill first contour the boundaries of the sections you want to keep, and then it will etch away all the material you don’t want to keep. This will take about 10 minutes to mill.



When the milling is done, the endmill will be resting on the circuit board. To move it out of the way hit the VIEW button on the control panel. That will take the end mill back to its resting position and out of the way. You;ll see your circuit board covered in a pile of dust and debris.




Take a small vacuum and vacuum away the dust – don’d just blow it or brush it off—get rid of the material as it will come back to haunt you in other inconvenient ways if you don’t dispose of it properly. Plus it’s not a good idea to breathe this dust. So do us all a favor and vacuum up the material. Then carefully pry your board off of the bed, remove the tape from the back of the board and the bed of the Modela. If you have a lot of extra unused copper board around your circuit and you have access to a scroll saw, you might want to neaten up the circuit by cutting away the excess copper board. Congratulations! Now you are ready for the electronics!





This tutorial was written by Lass on 2/15/07. Please feel free to improve upon it!





Comments (0)

You don't have permission to comment on this page.