16th February - 22nd February 2022
Task to be carried out this week
    Group Assignment
  1. characterize the design rules for your in-house PCB production process extra credit: send a PCB out to a board house
  2. Click for group assignment

    Individual Assignment
  1. Make an in-circuit programmer that includes a microcontroller
  2. Mill and stuff the PCB
  3. Test it to verify that it works
  4. Extra credit: customize the design
  5. extra credit: try other PCB processes
The softwares used during the week's assignment
  • Autodesk Eagle: For PCB design
  • MIT MODS: For Machine controlling
  • Visual Studio: For Documentation
Action Plan
Date Work Allocation
16th Feburary Prof. Neil's Lecture and first review with Prof. Neil.
17th February Lecture on Electronic production and introdution to machine used in the lab by local instructors
18th February Group Assignment: characterize the design rules for our in-house PCB production process
19th February Reading materials on ISP and soldering. Reading fabacademy archives on the week's assignment to learn more.
20th February Designing and Milling the incircuit programmer (Brian Board)
21st February Soldering and testing the incircuit programmer
22nd February Documenting the weeks assignment

Introdution to ISP

In-system programming (ISP), or also called in-circuit serial programming (ICSP), is the ability of some programmable logic devices, microcontrollers, and other embedded devices to be programmed while installed in a complete system, rather than requiring the chip to be programmed prior to installing it into the system. The primary advantage of in-system programming is that it allows manufacturers of electronic devices to integrate programming and testing into a single production phase, and save money, rather than requiring a separate programming stage prior to assembling the system. Microcontrollers are typically soldered directly to a printed circuit board and usually do not have the circuitry or space for a large external programming cable to another computer.

ISP Pin Description

Abbriviation Name
MISO Master In Slave Out
MOSI Master Out Slave In
VCC Power supply
SCK Serial CLock
RST Reset
GND Ground
PCB Milling Machine: Roland SRM 20

SRM20 is a low power, high precision and highly efficient desktop milling machine that is controlled through a touch-button VPanel controller to regulate feed rate, spindle speed and milling on a complete X, Y, Z axes, and an independent collet system that allows for faster setting of the Z-axis base point and quick tool changes.


Roland SRM20.
(img source: https://www.rolanddg.eu/en/products/3d/srm-20-small-milling-machine/features)

Some of the Salient features of roland SRM20 are;

  1. Milling Made Easy with a User-Friendly VPanel: VPanel controller provides a simple interface for adjusting tool position and moving the cursor to set the milling starting point. The VPanel also allows easy control of feed rate and spindle speed with pause and resume operation, plus tracking of X,Y,Z axis milling with a numeric readout in millimetres or inches.
  2. Software Included for Ultimate Productivity:supports many softwares such as SRP Player, MODELA Player 4, iModela Creator, Virtual MODELA, ClickMill, SFEdit2 that offers user-friendly operation for all aspects of CNC milling.
  3. Independent Collet System for Efficient Milling:SRM20 has features to eplace the collet chuck in order to match the shank diameter for fast setting of the Z-axis base point and for quick tool changes.Thus, we donot have to necessarily change spindles every time there is a different end mill shank diameter
  4. Fully Enclosed Cabinet:The SRM-20 has a fully-enclosed cabinet that reduces dust and noise and features a side-window for easy progress viewing. It also features an intelligent safety interlock to that automatically pauses the machine when the cover is opened, permitting milling to resume upon closing the cover and selecting 'continue'
The specification of the Roland SRM20 is as shown below;
  • Workspace/millinf space:23.22cm * 15.67cm.(x*y)
  • Operating Speed:6-1800 mm/min
  • Machine Dimensions:45.11cm*42.67cm*42.62cm (l*b*h)
  • Maximum Spindle Rotation:7,000rpm
  • Mechanical Resolution:0.000998 mm/step
More information about the machine can be found here: monoFab_Brochure.pdf
PCB Milling Process

For my Fab ISP, I didn't make the design on my on but rather downloaded the design provided by fab academy called FabTiny ISP. I choose the brian's version of the ISP design.


Schematic diagram of FabTiny ISP


Board diagram of FabTiny ISP

For milling my FabISP board using the Roland SRM20 machine, I followed the following steps;

1.Download the monochrome PNG file for the in-circuit programmer



Download link: http://fab.cba.mit.edu/classes/863.16/doc/projects/ftsmin/fts_mini_traces.png


Download link:http://fab.cba.mit.edu/classes/863.16/doc/projects/ftsmin/fts_mini_cut.png

2. Converting PNG to RML file using MIT Mods.
Before we feed the ISP design to the milling machine, we need to first convert the PNG image into RML (Redline Markup Language) file which is a machine readible file format. I used the MIT Mods to convert my PNG design files into RML files. I followed the following steps to create the RML file using MIT Mods;

  1. Go to the MIT Mods side → Left click on your mouse. → Select programs

  2. Then click on open server program.


  3. Scroll down and click on SRM20: PCB png. Here we can upload the png design files and generate rml files. We need to upload the design files seperately to generate individual rml files for the traces and the border-cut.

  4. I first uploaded my inner-traces png file. I have to select the end mill size based on the tracing we need. For the inner-trace, I selected the 1/64 end mill. Once the file is uploaded, I need to remove the output and create a saving point for the rml file and set the origin to 0,0,0. To do that first select the default web-socket device and delete it.

  5. Next we need to add a save module. To do that, right click → select module → click on open server module → selec save unders files.


  6. Now connect the output file from Roland SRM20 milling machine module as input for savefile module. To do that, click on the files under output on milling machine module and then click on the files under input on the save file module.

  7. Now click on calculate on the mill raster 2D module. The rml file automatically gets downloaded on the PC.

  8. Repeat steps 4 - 7 to get the rml file for the outer trace. Please note that we need to change the end mill size to 1/32.


3. Roland SRM20 machine setup and PCB milling
Once the rml files are created, we need to feed them to the SRM20 machine to mill our PCB. To do that, we use the VPanel which is a controller software that can be used to communicate with the SRM20 machine through as USB interface. We need to carry out the following steps to mill our PCB.

  1. Before giving nay commands to the machine, I needed to first setup the machine. For that, there were a couple of thing. First, we placed the copper plate on the sacrificial layer of the machine using a double sided tape. When placing the copper plate, we need to ensure to use same double sided tape throughout the plate to ensure no miss-allignment. Miss- allignment of the board can cause damage to the end mill and PCB.


  2. Next Change the end mill in the SRM 20 machine. for inner-traces, use the 1/64 end mill and for the outer/ cutout tracing, use the 1/32 end mill. We can use the Allen-key to remove and fix the end mill to the SRM machine. Once the end-mill is fixed on the machine, open VPanel.


  3. Now we need to set the origin point for the milling. To do that, use the x, y-coordinates on the VPanel to move the spindel and position it to our desired point. Now click on the setorigin point to set your x, y position for origin.

  4. Next we need change and set the z-origin point. To do that, slowly lower the spindel using the VPanel till the end mill tip is about a cm oe 2 above the PCB board. Than using the Allen-Ke, loosen the end mill to allow it to drop to the PCB board with gravity. This is a gravity method for zeroing the z-axis. Once you are sure of the zeroing, tighten the end mill and close the machine door. Now on the VPanel, set the z-origin point.


  5. Now, upload the RML file to the VPanel. To do that click on cut button → click on add → open the rml file to load → click on output. The machine will automatically start milling and will stop once completed.

      Note: Cut Settings
    • Step speed of the trace: 240mm/min. We set the step speed at 100%
    • Spindle speed: 7000RPM , We set the spindle speed at maximum and the speed reaches above 7000rpm for the SRM20

  6. Once the milling is completed, we can check to see if the traces are milled clearly. Then we follow the same steps to mill out outer trace. But remember to change the end mill to 1/32 before feeding the machine with the command. This was the final PCB that I milled.


  7. Next, I cleaned the PCB using a brush and used a spatula to take the the cut PCB out of the board.


Soldering

Soldering is a process used for joining metal parts to form a mechanical or electrical bond. Soldering uses a low melting point metal alloy (solder) which is melted and applied to the metal parts to be joined and this bonds to the metal parts and forms a connection when the solder solidifies.
There are two types of solder used for soldering purposes;

  • Tin/Lead Solder: Usually used by hobbyist and non-commercial user. Since it has harmful effect on human and environment, we need to follow certain safety precautions. We use this at our fablab.
  • Lead-Free Solder: Used for commercial production.
  • List of components that I soldered on my FabTiny ISP are shown in the image below.

    I used the following tools when soldering the components on my PCB;

    • Electric Soldering Iron
    • Soldering Material - lead wire
    • Twizer: Helped me to hold the components when soldering
    • Multimeter: to check connectivity when soldering components
    • Desoldering Tool: to remove soldering incase we make mistakes
    • Exhaust Fan: Since the fumes produced when soldering are harmful, we need exhaust fan to remove the fumes
    • Clamp: to hold my PCB when soldering
    You can find detail information about soldering here https://www.uts.edu.au/sites/default/files/Soldering_0.pdf


    Demonstration on soldering by Mr. Take

    Once I had all the tools and components ready at the soldering station, I started with soldering. Since the components were tiny, it was quite difficult to solder. My hands kept shaking when trying to solder the components. Also, I made mistakes in identifying the polarity of the components when soldering, so I had to desolder the components and solder again.


    This is the final ISP that I made. I went through a lot of mistakes beofore completing my soldering. I also burnt my hand by the soldering iron.


    My FabTiny ISP

    Programming the FabTiny ISP

    Once we are done soldering, we need to program the FabTiny ISP using ISP programmer. To do that follow the following steps;

    1. First download the firmware source code and unzip the file on the desired location.

    2. Next we need to change the programmer type in the Makefile. We used the atmelice_isp to program the board. To do that, open the makefile available in the unziped firmware source code folder using a text-editor software. I used notepad++ text editor. In the opened file, find the line that says:
    PROGRAMMER ?= usbtiny and change usbtiny to atmelice_isp.

    3. Now connect the soldered FabTiny ISP to the PC using a USB. The Red LED (orange in my case) will lit up if the soldering and commections are correct. Now, connect the programmer to the ISP using the 6 pin connecter used on the FabTiny ISP. We need to ensure that the pin 1 on the connector matches up to pin 1 on the board.

    4. Once the connection is made, run the following command on the terminal;

  • Make
  • Make Flash
  • Make Fuses

  • 5. Now to see if your ISP has been programmed and recognized as ISP programmer, run the following command on the terminal;
  • lsusb


  • The ISP was successfully identified as shown above.

    6. Next we need to blow the reset fuse. Doing so will disable the ability to reprogram this ATtiny45 in the future. Therefore, we need to ensure that everything is working before carrying out this command. To do that run the following command on the terminal.
  • make rstdisbl

  • 7. Now disconnect the ISP from the PC and unsolder the joint made in earlier design. I used the desoldering tool to do that


    Removing the connection using desoldering tool.


    Successfully removed the connection.