5. Electronics production

This weeks assignment is to characterize the design rules for your in-house PCB production process: document feeds, speeds, plunge rate, depth of cut (traces and outline) and tooling. Then we document our work (in a group or individually). We document our work to the group work page and reflect on your individual page what you learned

Group Assignment

The requirements for the group assignment were:

  • Characterize the design rules for your in-house PCB production process: document feeds, speeds, plunge rate, depth of cut (traces and outline) and tooling.

  • Document your work (in a group or individually)

  • Document your work to the group work page and reflect on your individual page what you learned

The group work page including the documentation is here.

Individual assignment

The individual assignment was to make an in-circuit programmer that includes a microcontroller by milling and stuffing the PCB, test it to verify that it works.

The requirements for the individual assignment were to: * Make an in-circuit programmer that includes a microcontroller by milling and stuffing the PCB, test it to verify that it works.

Converting format

The circuit board .svg files were provided by the instructor. The files can be found here.

Creating the traces milling file for the circuit board

In order to cut the circuit board, we need files for the milling machine. The conversion from svg files to a form which has the required information for milling for the machine we are using is done in mods.

I opened mods in the address http://mods.cba.mit.edu in my browser. It is important to select the right browser. I used Microsoft Edge and it appeared to work. Using incompatible browser, for example Firefox, may cause problems. The problems may include images displayed incorrectly or mods not working at all.

The correct program was open by clicking right mouse button and then selecting in sequence programs -> open server program and then selecting PCB svg under Machines and SRM-20.

PCB png

The server program opens as a collection of connected modules.

PCB png

The modules have parameters and the parameters can be adjusted. New modules and connections between modules can be added.

We made some adjustments. We pressed select svg file in the first module (shown in the upper left corner in the previous picture).

PCB png

We added Programmer-UPDI-D11C-F_CuElectronicsProduction.svg file. The file contained the trace information of the programmer. Image of the traces is displayed in the module.

PCB png

Then we pressed view button and added invert to the second module. Inversion was required, because black color in the picture is removed. We want to leave the copper on traces and remove it elsewhere. The convert SVG image module with the inverted traces image is shown in the image below.

PCB png

Then we added origin to (0,0,0) in Roland SRM-20 Milling machine module, because it was set to (10,10,10) as default. The bit would not have touched the circuit board with default values.

At this point, the overall view to the image looked like this:

PCB png

I experimented with different tool diameter and max depth options. Too wide bit could not cut the traces. It appears that in this phase I finally set the tool diameter to 0.2 mm and set the cut depth and max_depth to 0.07 mm.

PCB png

Then we added a module for exporting the file in the correct format(modules -> open server module* -> file -> save and saved the milling file to usb.

Web socket module was removed and save file module was connected to its place after Roland SRM-20 milling machine module.

Then calculate was pressed in mill raster 2D module. .rml file was automatically saved and the toolpath was shown in the display.

The toolpath is shown below. Blue lines denote the toolpath, red lines show where the drill is moved off the board in order to move the bit over the saved traces. Coordinate axis show the location of the origo and the directions of the coordinates. :

PCB png

We checked visually, if the traces really were there. It looked ok. The details were there. The saved file was renamed and stored for milling the traces.

Creating the mill file for removing the extra copper

Removing the extra copper around the circuit board was necessary for avoiding the short circuit in case that cutting the outlines would leave some copper on the connector.

The tool path calculations for the removal of areas with 1 mm end mill were performed by the same mods setup but with different parameters. We used offset number of 0 and 1 mm tool diameter in the calculations. Offset number 0 is interpreted as fill.

toolpath calc for removing copper

The toolpath was then calculated and observed. The created .rml file was saved for milling. The toolpath is shown below.

toolpath calc for removing copper

Creating the outlines mill file

The second .svg file was for edge cuts and the outlines. It had to be converted to .rml format as well.

The edge cuts svg file (Programmer-UPDI-D11C-Edge_CutsElectronicsProduction.svg) was selected in the read SVG module. The image was inverted in the convert SVG image module.

PCB png

Mill outline was selected in set PCB defaults file.

PCB png

In the mill raster 2D module, cut depth was set to 0.6 mm and maximum depth was set to 1.7 mm. Tool size was set to 1 mm.

PCB png

Calculate was pressed in mill raster 2D module. The resulting file was saved for cutting the outlines later. The toolpath was displayed and visually inspected. The toolpath for cutting the outlines is shown below.

PCB png

Milling the board

The SRM-20 was controlled by Vpanel program.

PCB png

The bit was installed by hand.

PCB png

The bit must be fastened by a specific tool.

PCB png

If the machine is open, none of the controls will work. It is important to operate the door correctly.

The milling bit was moved to area where there was enough room for the bit. There was move to origo for coorinate axis and x/y button.

It was important to check the height and the different bits may require different settings. Checking the z-coordinate outside the milling area is important, because the moving head will break the bit and scratch the board if it moves over the object too low. When the Z-coordinate was checked on the safe spot, the bit was moved to selected x/y origo. The origo can be set separately from z-origo. This is important, because different heads requiring different settings for Z can and in this case will be used in milling or cutting the board. PCB png

When X and Y coordinates are moved to the beginning point of the milling, the door was opened, special tool was used to lower the tip of the milling bit on the top of the board. This must be done carefully in order to keep the bit in one piece. Dropping the hard tool probably will break it. The bit must be fastened then again and the z-coordinate zeroed after closing the hatch. The special tool must be returned to its place.

The first milling file to run was traces.rml. Orange mill bit was used. It contained the information for cutting the traced for the board. After reading the instructions file, Cutting was initiated by pressing the Cut button. PCB png

The traces were milled with a V-bit (0.2 mm). The depth of the milling had to be adjusted. It is possible to deepen the cut progressively until enough copper is milled retaining the x and y settings of the mill.

Example of the traces milled. PCB png

The dust was removed with a vacuum cleaner. PCB png

After the traces were milled, it was time to clean up the extra copper by using cleanup file (cleanup.rml). A purple milling bit was used.

PCB png The new bit was installed and Z coordinate was adjusted accordingly. (1 mm end mill).

Then the cleanup was initiatized and the special tool was used for removing the dust. After adjustments, result was quite nice. PCB png

After the cleanup, outline milling file was loaded. PCB png

This time the installed contour milling bit (yellow) was clearly longer than previous milling bit. adjusting the z coordinate outside the milling area, as described earlier, was really important to do before moving the bit to x/y origo. The risk for breaking the bit was real. The cutting of the board was intitialized by using the .rml file previously created for cutting. PCB png

Cutting seemed to be worked and the cutted board was still firmly fasteded to the blue Scotch tape. PCB png

A vacuum cleaner was used again and the circuit board was removed with a screwdriver. PCB png

Closer observation showed that the circuit board lookes just fine.

PCB png

The milling bit was removed and the machine was cleaneed.

Here is a view to the milling bits used in the process. PCB png

Soldering the components

The component were collected and soldered. The components included one ic, two caps, 3.3V voltage regulator, one capacitor, two resistors and two connectors. The components were soldered under magnifying lens using traditional soldering tools. The wire included flux.

The solder wire was too thick for the purpose. I managed to do the job by adding too much solder in order to get enough flux. Then I removed the extra material with copper sock. This left enough flux on the board and the extra material was gone.

After soldering the board I washed it under water and brushed the extra flux off with isopropylalcohol. I inspected the board under magnifying glass for short circuits.

The populated board is shown below.

Programming the device.

Before programming the device was checked against shorts. None was found and the resistance values were nominal. The device was programmed in Instructor’s laptop for test purposes The stick was detected after the programming and gave correct responses in programmer. It apperas to be working. I also checked the stick in Ubuntu and lsusb showed the device.

I re-programmed the device. The programming of the USB programmer is covered in the Week 09 Documentation.

What did I learn?

Well, I learned how to mill a small circuit board. I learned, how important it is to make sure that the board is on level. I learned how to program a programmer. I soldered the components to a circuit board, but I actually have done it before.