Electronics Production

Softwares Used

Preparing for Milling

The task for this week was to make a PCB using a milling machine. When circuit boards are made commercially they are atched using chemicals, process creates hazardous waste which is difficult to responsibly dispose of. It is only really viabl in a batch proccess, otherwise the waste is disproportionate. This is why FabLab PCB's will be made through precision milling which will cut the circuit board from copper. This allows each small board to be unique with small amounts of waste. It is a good process for making individual small boards rather using the wasteful than the mass production etching processes.

The first thing I did when prepping my file to be milled was to download the .png files from Brian's template here. These allowed for the construction of a board that plugs directly into a USB port rather than having to insert more components to add this capability as on other ISP templates. After downloading the template files (trace and outline) I exported them to Fab Modules. Here I used the software to transfer the .png files to an .rml for milling on our Roland MX-50. This involved filling in criteria for the home's of the machine. It is importnat that each one is at 0 other than Zhome which must be at 2. This ensures that there is margin for error when the milling tool is moving towards the board, as if the tool hits the board at the wrong hi=eight damage could occur to both elements. For the 'trace' file I selected the 'PCB traces (1/64)' process, for the 'outline' file I selected 'PCB outline (1/32)'. After inputting the correct parameters, I hit the calculate button, and then saved the rml file that was created. This gave me my paths for milling in the CNC.


Trace.png image downloaded for milling frankenISP, later converted to .rml


Cut parameters for trace in fabmodules.


Cut parameters for trace in fabmodules.


Outline.png image, went through the same process as trace.png



Process options menu in fabmodules.


What the outline file looked like after being traced by fabmodules.


Milling The Board

After finishing the conversion to .rml I began setting up the MDX-50 milling machine to mill out my circuit. All of the black parts of the above .png files were removed and all of the white remains. The material for milling was placed on top of a wax block so that it was he correct height for the machine.

Setting up the Machine

Two different tools were used for the milling process, tool 2 for the trace and tool one for the outline, this is because tool 2 has a finer point than number 1. The tool must be changed manually, on the menu on the machine, you go to tool and then select which tool you would like to use. If you don't do this correctly the board WILL NOT MILL PROPERLY. I made sure that each home (x, y and z) was set correctly. To do this, you go into the menu on the machine and manually move the spindle until it is correct, x and y are easier to set, however z you must be careful with - you cannot touch the material for milling with the spindle unless it is spinning. This can be avoided by changing the rate of movement to a very low one as you get near to the copper board. You can also turn on the spindle by holding down the spindle button on the machine, but be aware this will mmill the board if it makes contact so make sure X and Y are set correctly before setting Z. Set the values by moving the spindle to where you want it and then holding "origin". You can test it has worked by going into the menu on the machine and selecting "user xy".

I then opened up the Roland V Panel software, loaded in the correct .rml files and pressed 'output', this caused the machine to begin milling the design. Note: the check of the home parameters was just for safety as they are loaded into the .rml files from fabmodules.


The PCB ready for milling on top of the wax block.


Roland VPanel software


Milled PCB


I Initialed my PCB so I would know it was mine.


Soldering the PCB to make Brian's ISP

After I finished milling the next step was to clean the board and remove any copper that the machine had missed, in order to minimise the chances of the circuit shorting. I did this by using a scalpal to scratch the copper from the top of the board. Then I could begin soldering the components. We didn't have all of them in surface-mounted form so I had to use some non s-m components in order to complete the circuit, this made soldering a little more difficult. When we started soldering we had a short workshop where examples were shown under a projector in order for us to see how to most efficiently work. I taped all the components next to thier names on a piece of paper so that I always knew what was what and began to solder. I made sure that I checked the polarities of relevant components and carefully followed the schematic, found here. After finishing, I was happy with the result of my work.

Scratching excess copper away using a small scalpal.


Zoomed view of the ISP during the workshop we had.


All my components ready to solder.


The first schematic for the board.


The second schematic for the board.


Part soldered board.


Finished ISP.


Programming the ISP

After finishing soldering my components I had a little time left so I decided to follow the instructions on Brian's page for programming the ISP. This involved making a ribbon wire to connect my ISP to the one that will be programming it. I did this by connecting the ends of the wires to the alignment tool for the six pins with a clip. After this I plugged both ISP's in via USB and then followed Brian's instructions for programming. The programming was just done in terminal, however I needed to download Xcode from the Apple app store and Crosspack AVR, in order to progamme the board. This worked for the first two steps that programmed the board but I recieved an error message when attempting to break the reset capability of the board. After troubleshooting the issue I found that there was a small short affecting the components that are involved in the last part of programming the board.


Making the wire through pressing it into the clip, after aligning it it had to be pressed onto a hard surface to fix it in place.


A finished FabISP programming my FrankISP. You must ensure the cable is attched this way around otherwise the connection will not work.


Error Message I recieved when attempting to finish programming my ISP.


As I recieved this error message when I attempted to finish off programming, and discovered a small short I will have to remake my board for the week when we need to use it as a programmer. I do feel that I have learned from this week though, I have improved my soldering and learned how to accurately mill using our CNC machine.

Making a Board that Works!

I came back to this week just before starting Electronics Design. This time I decided to make a standard FabISP rather than Brian's one, as there was a board in the lab that had already been milled but was never cleaned or soldered. All I did was check that the traces were correct, remove any excess copper and then solder the components onto the board. I then programmed the ISP using this set of instructions and it worked!