How THIN can you SPIN? Testing Limits to Find Design Rules



In order to be able to design a PCB that can be manufactured easily, it is important to take into account the limitations of the manufacturing process that will be used. These limitations will determine de minimum distance between features, the minimum width, minimum hole and pad sizes, among others. Our design rules are made up of these values, and are generally refferenced by our CAD software in such a way that they will display a warning and/or point out areas in the PCB design that are breaking the rules. (Naughty traces, leave them alone for a second and they go breakin' the design rules just for the sake of it).

In order to get an idea of the values we should use in our PCB designs, we have been provided with a design to mill.

line test

The idea behind this design is to measure the tolerances we can achieve with our CNC Milling machine. The traces and spaces on this design become thinner from right to left, and it becomes incresingly more challenging for the machine to make without either causing damage to the intended geometry or just blasting it off completely.

In order to prepare this design for milling I used the Mods software located here. This software allows remote access to software processes that allow the user to execute a variety of tasks from a single page by calling each function in a dedicated module. By understanding the way this software processes the image we can arrive at a cursory understanding of our PCB design rules. I started out by opening mods and left clicking to open up my selection menu, and then selecting the following options:







This will display the Mods preset for creating Gcode for PCB milling.

mods

Each of the modules recives an input and modifies it to create an output that can either be exported or handed off to the next module in the chain. The first thing to do is to input a .PNG file, in this case I will input my Line test file. It is important to pay attention to scale. If the information displayed for the measurements in the module is incorrect it is likely that the resulting PCB will not accomodate the components that will be soldered on later.



The next module to pay attention to is the one where we will determine many of our milling settings. The following image illustrates this. The Tool Diameter asks us for the diameter of the end mill we will be using to mill this PCB. In this case I used 1/64 inch as my input. The Cut Depth will tell the machine how deep each pass of the cutting tool should be. I set this to 0.4 mm. The max depth corresponds to the final depth of cut. The milling machine will make succeeding cuts determined by the cut depth until it reaches the maximum depth. Shallower cuts make for a cleaner milling process, but more cuts means a longer milling time. Deeper cuts speed up the process, but increase the risk of breaking an end mill or causing damage to your work.



The Offset Number determines how many perimeter offsets the tool will make. In essence, it determines how much of the excess copper will be removed from the copper clad board. The following images illustrate the effects of changing this setting from 0 (fill) to 3. Each line on the image represents a path that will be milled.







The six modules to the right of the window are image processing routines. In order to properly generate milling paths the image must be converted into a vector format. This is what those modules do.

By clicking on the calculate button in our main module we tell the program to run the imported .PNG image through the image processing modules, which return their result to the main window and display the milling paths in it. We can preview our milling path by clicking on the View option.



The next window will determine our speeds and feeds. I used the settings in the following image to mill my line test.



Once all of these settings were in place, I clicked on Calculate in order to generate my GCode file. The original files are included at the bottom of this page. If I were to run the following gcode on the milling machine, I would mill my traces onto the copper clad board, but my PCB would still be attached to the stock material. In order to remove it, I have to generate another cut file that will cut out the outline of the Line test. This file was also provided for us.



All it is is a black outline that shares a common origin with the previous design. It is prepared in a similar way, but changes are made to the maximum depth and offsets settings. Maximum depth is changed to 1.7, which tells the machine to mill through the width of my copper clad board, and offets is set to 1 in order to mill a single path in steps through the material.

Alex shared a gcode simulator that can be found here. by copying the gcode into this window we can take a look at the preview it generates in order to make sure that the milling machine will be travelling the way we want it to. Any lines shooting off into spae would be a bad sign.



Finally, we were provided with an autoleveller. The function of this program is to run the milling machine through a routine in order to generate ofsets in the gcode that ensure that the milling procedures are level with the material to be milled. The autoleveler adds code to the beginning of the gcode which contains the autolevelling routine.





Milling Vanilling



Once I generated my Gcode files I was ready to send them to the milling machine and run my cuts. We began with a safety overview.

The first rule of CNC milling is you don't talk about CNC milling. Wait, wrong movie.

End mills are sharp. Don't touch the pointy bit. It will cut you and you might cry in front of everybody. Also, blood will oxidize your copper traces. Don't bleed on your PCB.

End mills are fragile, especially the crazy thin ones used for PCB milling. Also End mills are expensive. Also, special end mills like these take a long time to get to Ecuador. Don't drop them. Handle them with care, or your instructor might cry in front of everybody.

Our CNC machine is a big beast of a thing. Stay out of its way. It has more horsepower than you care to get in the way of. It will break your leg with less effort than it takes you to bend a bendy straw. Know where your hands are and don't stick them near any moving parts. Especially don't stick your fingers near the furious spinny thing that's pushing 10,00o RPM. You will probably cry in front of everybody if you do that.

We all want to look stylish while we prototype, but the CNC mill won't judge you for your looks. The furious spinny thing, also known as the spindle, loves to suck in any dangly pieves of clothing. Don't wear a scarf, keep you sleeves short or rolled up and leave your Superman cape at home.

10,000 RPM is very fast, and any end mill that breaks could become a sharp flying projectile. Eyeballs are soft, squishy things. Tungsten Carbide is the exact opposite of soft and squishy. Your eyeball will lose a fight against a flying end mill shard. Wear safety glasses.



The standard end mills used to mill PCBs are 1/32 inch, 1/64 inch and 0.010 thousandths of an inch in diameter. Our Fab Lab has these in stock for when they are required. However, it takes a long time and a big shipping fee to get those into Ecuador. For this reason we used 30 degree and 45 degree V tip mills in order to mill or line test. The results from these fall within the range required to successfully mill PCBs.

The first step is to attach the material to the work table. We did this using double sided tape. The next step is to place the milling tool into the collet. It's important to hold the V bit in place with a finger. This will prevent the bit from either falling onto the work surface and damaging your work or the bit. Once the chuck is tightened far enough the bit should be secure enough not to fall out.



The collet must be tightened further in order to hold the bit securely while the machine is working. In our machine this requires the use of two wrenches, one to hold the spindle in place and the other to rotate the chuck. For safety, the v bits come fitter with a removable rubber sock that is kept in place until the bit is installed, this covers the sharp tip and prevents accidental cuts, as well as protecting the tip from impact in case of a fall. We used a 45 degree v bit to mill the traces on our line test.



Once everything is set we can define our origin. The origin will be the point that is considered to be the starting point for each axis while the machine is cutting. It is important to take the placement of the origin into consideration in order to ensure that the cut will take place on the material that you place in the machine. In this case the origin was set to the bottom left corner of my material in the XY axis, and within 3 mm of my material in the Z Axis. In order to move the toolhead into place in the X, Y and Z axes we used the jog controls from the CAM software The Autoleveler will ensure that the Z origin is set immediately on the material once it runs.









We loaded the gcode for this file into the cutting software, but I got an error. Our instructor Alex told us that this error happens frequently with the autoleveler, and it is due to some text that is added to the beggining of the gcode by the autoleveler program.





Once this text was erased we saved the gcode file and tried again. The error was gone and we could begin the autoleveling routine. In order to do this in the safest way possible we ran the program step by step rather than running the cut program from start to finish. This gives us more control and it allows us to respond more quickly if we experience an error. We also kept a finger on the P key on our keyboard, this key is used to pause the program if we see something go wrong. The program uses an electronic probe that is held by hand on the material and makes contact with the copper clad board and senses the moment that the tool makes contact with the material. the program takes note of the Z position of the toolhead at this moment and uses it to offset the machine's movements as it works through the cutting movements. The machine will probe the first point 3 times. Once the three probes are finished, we can be sure that the machine won't ram the tool into the material and we can run the rest of the autoleveling program continuously.







Once the autoleveling is finished, the machine will automatically pause before beginning the job. At this point we continue to tun the program step by step until the spindle starts spinning. It is important to wait until the speed ramps up completely before begining the cut. It is easy to know when it has reached top speed because the frequency of the sound it makes will stop increasing until it remains constant. At this point we can hit the button to begin the job. The machine will start milling the paths until it is finished, and then it will return to its origin and switch the motor off. We jogged the motor away in order to get a better view of the results.



The results looked adequate, but we still had to cut the piece off. The 45 degree v Bit's angle is too shallow, and cutting through the material with it would probably cause it to remove too much material, as its kerf increases with cut depth due to the angle on the curring edge of the V bit. For this reason we switched to a 30 degree V bit before running the final cut job. We can no longer run the autoleveler because all of the probe points are on top of the material we just milled, and since the system requires conductivity between the probe and the tip of the bit, the probe would fail. In this case we have to set our Z origin manually. In order to do this we move out cutting tool to the X Y origin. Once there, we set the spindle to spin. We then jog the toolhead down carefully, being sure to use the appropiate step distance, until it just makes contact with the material. We then set the Z origin in the software.



At this point we raise the toolhead once again and we begin the job by running the program step by step until the spindle begins to ramp up. Once at a constant speed we run the entire cut job.



Our cutter managed to make it to the fifth line from rhe right. This means that as long as we keep the spaces between each trace and pad on our boards above at least 0.020 inches we should have no problem making them in our lab.

A Board of my Own

my precious


Now that I had gotten some practice it was time for me to mill my own board. I chose to reproduce Alex's version. I downloaded the traces and outline files from his page and imported the traces into Inkscape.



I didn't want to copy his board exactly, but I also didn't want to draw up a schematic and route a board myself in this case. I decided to compromise by expressing the true extent of my feelings about the process of growth and maturity I have gone through so far in Fab Academy.

I'm a grownup for real though

After attempting to prepare this over and over again in Mods I had to give up on my message because the letters were too small to mill.



This made me sad, so I updated my board to express my angst.



With larger letters, this file could be prepared easily in Mods with a 1/32 inch mill diameter. We found this to be within tolerance for milling in consideration of our design rules determined in the group excercise. I did the same for the outline to cut my board out. I used the same setting as were used in the group excercize.





I used the same procedure used in the group excercize to create the gcode and mill my board on the CNC router. Unfortunately I was in a hurry while milling the PCB, so I did not get any photos of the milling process, but I have a Photo of the half-stuffed board that shows the results.

As far as the eye could tell there was only one issue with the milling process. I failed to inspect the milling paths with as much detail as I should have, and I didn't realize that there was not a cut path in between two of the pads where the Mini USB connector would be soldered later on. Fortunately this was easy to fix by manually cutting a space between the pads with a sharp utility knife. The circled area indicates the spot where the cut was made.




Once the board was milled I proceeded to stuff the PCB using the components provided to me by my lab after submitting my Bill Of Materials (BOM) to my instructors. The components used are the following:

BOM

  • 1 x ATtiny45 or ATtiny85
  • 2 x 1 kΩ resistors
  • 2 x 499Ω resistors
  • 2 x 49Ω resistors
  • 2 x 3.3v Zener diodes
  • 1 x red LED
  • 1 x green LED
  • 1 x 100nF capacitor
  • 1 x pins of 2x3 pins