w.1.homw web.png

Week 4
Electronic Production

Welcome to my 4th week of Fabacademy.In this week I am going to learn about Electronics Production in which I am making my own PCBs (Printed circuit boards) using PCB milling machines and their software packages, assembling electrical components, soldering, to make my programming bords.😀

The task list for this week:

  • Group assignment:
    • 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
  • Individual assignments.
    • Make an in-circuit programmer that includes a microcontroller by milling and stuffing the PCB, test it to verify that it works.

Group assignment:

Precision Test:

This week we work on PCB fabrication. we have been making our hands 1st time on the milling machines and learning to fabricate PCBs. for which we use SRM-20 a Precision and Productivity 3- axis milling machine used for doing many milling operations. In the assignment, we work on checking the precision test for our milling machine . electronic production > (CAM) section > trace width .

image not found

Precision test for SRM-20.

Using these results we characterize the design rules for our PCB production process.

Check here to read more about our group assigment.

Individual assignments:

So for this week, I have to make an in-circuit programmer board. Using a microcontroller and machining the PCB board and last testing it to verify that it works.

Introduce to the programming board:

There are 4 types of programming boards I found in the fab academy.

  1. ISP(In-System Programmer)
  2. UPDI(Unified Program and Debug Interface)
  3. FPDI(Future Technology Devices International Limited )
  4. JTAG( Joint (European) Test Access Group )

Out of which I decided to make ISP for my assignment this week.I followed the blog by Brian (Building the FabTinyISP) for reference

Building the FabTinyISP :

for fabracting my FabTinyISP I use this sourae file from Brian blog

  1. Traces (1000 dpi)
  2. Outline Cutout (1000 dpi)


I use Modes CE for creating rml file for SRM-20
For using modes I refer this tutorial.

How I use the online MODS to make files to mill circuit boards:

Step 1: obtain the files: Find or Design a Circuit Board

Modes program use PNG or SVG images files for generating rml file .Export/save board design as .png, You should have two or three images, depending on your PCB:

  1. Traces
  2. holes drill
  3. outline

For fabracting my FabTinyISP I use this sourae file directly from Brian blog.

  1. Traces (1000 dpi)
  2. Outline Cutout (1000 dpi)

others FabIsp option can be found here.

Step 2: MODS - Setup for PCB milling.

MODS is the new FABMODULES it more capable and works by connecting nodes to develop each process. one can customize his own workflows by loading different modules or use an already precompiled program. In my case I am going to use a precompiled program and add a module to save automatically in my computer instead of connecting directly to the machine.

  1. Open mods in browser recommended firefox/chrome i personaly use crome .
  2. Right click anywhere and select select PROGRAMS --> OPEN PROGRAM --> Roland --> SRM-20 mill--> PCB Absulute. (choose the machine you will use In my case it is SRM-20 mill)
image not found

for saving rml file I need to add another module to make it save the file automatically. So we need to look for the program/component that outputs the file. In this case Roland SRM-20 milling machine and disconnect it with the out put device i did it dy deliting WebSocat Print module in program.

image not found

Right click anywhere in the white space and select MODULE > OPEN MODULE > FILE( > SAVE)

Now connect the elements by clicking on OUTPUT of RolandSrm-20milling machine and clicking again in INPUT of save file module to make the connection/ wiring between them.

image not found

Values that I Modify
Origin Roland SRM-20 milling machine in module.

  • x0(mm) - 0
  • y0(mm) - 0
  • z0(mm) - 0
These x0,y0,z0 are for setting up an offset from the origin save in.
  • zjopg - 2
This is the z distance that the mill will go up between the air travellings
x/y/x home is the parking position after finishing the cut
I set other things as defalt they are in program.

Step 3: MODS - Setup for Traces (1/64):

Open traces image file in program (This is the one with lines that will form the wires between components.) for that I go to READ PNG MODULE SELECT- PNG FILE - select traces image and uplode it.
then I click in MILL TRACES 1/64 in SET PCB Default module for seting program for 1/64 milling bit.

image not found

Than I Click "calculate"(you will see the path calculating), when the process finish it gets "automatically be saved into downloads folder".

image not found

The file will be saved automatically into your download folder.

Values that I Modify

  • tool diameter:define dimeter of selected milling bit
  • cut depth:Define feed dipth of milling bit
  • max depth:Define feed dipth of milling bit
  • offset number:Define no. of offect passes per traces.
  • offset stepover:Define offset distance per offect with respect to tool dimeter in my case o.5 =1/2 dimeter(dimeter=1)
  • direction:climb/conventional.
  • path merge:climb/conventional(-1 = fill).
  • path order:forward/reverse.
I personaly modify offset number -1 to remove all copper filling except traces.

The file will be saved automatically into your download folder.

Step 4: MODS - Setup for Outline Cutout (1/32):

Repeat the same process again for Outline Cutout . Open Outline Cutout image file in program (This is the one with lines that will form boundry line for components.) for that I go to READ PNG MODULE SELECT- PNG FILE - select Outline Cutout image and uplode it.
then I click in MILL TRACES 1/32 in SET PCB Default module for seting program for 1/32 milling bit.

image not found

I keep all the valuse as it was in program except the origin setings which i make agent this time as prives.

image not found

Values that I Modify
Origin Roland SRM-20 milling machine in module.

  • x0(mm) - 0
  • y0(mm) - 0
  • z0(mm) - 0
These x0,y0,z0 are for setting up an offset from the origin save in.
  • zjopg - 2
image not found

PNG image and RML file generated.

Than I Click "calculate, to finish it and downlode the RML file in" downloads folder".

CNC Milling Machine( SRM-20):

Vigyan ashram fab-lab has a monoFab SRM-20 Desktop Milling Machine a Precision and Productivity 3- axis milling machine used for doing many milling operations. come with a software VPanel controller to regulate feed rate, spindle speed, and milling on a complete X, Y, Z axes, and a collet system that allows for faster setting of the Z-axis base point and quick tool changes.
To know more about SRM-20 Milling Machine chick out its manual.

image not found

Vigyan ashram fab lab CNC milling machin.

For this week of electric production, we use FR1 PCB where the insulation is made of phenolic paper for our PCBs fabrication.

Operated the PCB milling machine( SRM-20):

Mounting PCB bord on machine bed:

image not found


It is good practice to 1st clean machine bed befour mounting PCB on it. I apply double sided tape all the way across (see photo) to PCB making sure it’s flat as well, with no folds, particles or overlaps under or on it. and Place it down on the sacrificial board securely on miling machine bed.


VPanel for SRM-20 is a dedicated software for controlling this machine. using this softwere one can operate this machine and make various settings using this software. .It is a CAM program use to send the rml file SRM-20 CNC.

image not found

V-Panal for controlling SRM-20.

1.Setting up the cutting tool (End mill):

It is very important to set the tool in perfect way to avoid tool bracking ,wobbling of tool which can damage the PCB it self during machining as well as milling bit.For better quality of the PCB milling and improved tool life, it is important to follow specific recommended steps in setting-up the end mills. Following are the steps that I fallow noted in SRM-20 manule.

image not found

Seting-up the origin point of SRM-20(on X-Y plane)

As I set my bord in the middle of the machine bed I select the suitable place for cutting my PCB before starting machining I have to set the X-Y coordinate for the milling profile on my PCB board. For that, I use the arrow on the V panel to move the end mill tool and make it placed in a suitable position. at last, to set the X-Y coordinate I click the set XY button on the left side to set the origin.

image not found

Seting-up the Z-axis point of SRM-20(gravity)

After setting the XY plane I need to set the Z-axis of the milling bit too tall for the machine's exact depth of the PCB board .for that I use the gravity method in which I first move the tool to its XY coordinate by selecting the move to origin button in the V panel move the tool expect some distance apart from the PCB level .and finally using gravity to set the milling bit on the PCB surface .and set the Z coordinate by clicking on a button to set Z coordinate.

image not found

Send the traces file to SRM-20:

It machining time now .To start the milling machin I required RML file which I created using Modes .I first cut the traces using a 1/64 inch milling bit. to send file Click “Cut” on the control panel. A new window will appear where I select traces cutting file one which I downloded, now click Output and the machine start. and the machin starts cutting the PCB automaticly
After finishing the machining process I clean the PCB using a brush and vacuume cleaner.

image not found

Send the outcut file to SRM-20:

After processing on PCB it's time to cut the boundary of PCB for that I upload the Outcut RML file for PCB and change the 1/64 milling bit with a 1/32 inch bit for cutting the PCB. Following the same procedure as above mention. image not found

When the machine stops, I have to vacuum to see the traces. Do not remove the board! As I need the original coordinate of tresses as it is. I just repeating the same Z origin procedure but before I have to change the end mill to use the 1/32 end mill. After zeroing the Z (gravity Z)I click "CUT" again in the control panel but now choose Outcut files and click Output.
NOTE: Only set the origin Z or you will not be able to match the last origin X/Y
When the machine stops, I remove the board with the help of a spatula. Vacuum away the plastic and metal chips in the area once again.

image not found

PCB after milling.

Soldering the PCB:

This one is the faveret part of this week for me.For Soldering PCB first I list down all the components I needed .Arrange the Soldering table with the tools I will need during soldering .

Circuits scametic Digram:

I use this scametic circuits from brian blog for Soldering the components at there exact position on bord.

Components list:

image not found

  • 1x ATtiny45 or ATtiny85
  • 2x 1kΩ resistors
  • 2x 499Ω resistors
  • 2x 49Ω resistors
  • 2x 3.3v zener diodes
  • 1x red LED
  • 1x green LED
  • 1x 100nF capacitor
  • 1x 2x3 pin header

Soldering Technic:

What i find intresting is for soldering components cleanly .I needs to apply a little bit of soldering flux on copper pads and then hold the component and just by taking some little amount of soldering metal on tip of soldure gun and holdinh it on leg of component make soldering neet and clean effect.

image not found

image not found

So I have to resoldure the hole ISP bord agen luckely I have allready a bord ready milled .I was sure that I will do some mistack.

Testing the components:

Befor solderingI test the poleraty of LED befor and after soldering on bord directely using multimeter to ensure the components are working properly.

image not found

Error :

In first attemp I did a mistact that I solder same value Resistance at both the places.which was not shown in scmetic of circuit .

So I have to resoldure the hole ISP bord agen luckely I have allready a bord ready milled .I was sure that I will do some somansence mistacks.

image not found

Assembled FabTinyISP.

Programing the bord:

Following are the steps on how I Install and Program my ISP bord using Ubuntu.

Programing the bord with Windos:

As we are using the ATtiny45 microcontroller for our ISP(In-System Programmer) module we have to install some drivers to program it. ATtiny (also known as TinyAVR) is a subfamily of the popular 8-bit AVR microcontrollers AVR microcontrollers . so for programing them I need to install AVRDUDE - AVR Downloader/UploaDEr driver for programing it.

For installing the drivers I have to use the terminal. It seems very osm but I am really scared of it. Brian in his blog (Building the FabTinyISP) describes the installation process very carefully. I have windows OS so I decided to install the drivers in it .but it was a very hectic process and I failed at one of the steps.

image not found

Driver installation failed in windos OS .

Shifting to Ubuntu:

Then I Go with Ubuntu for programming and I found it so easy that I further decided to continue with it. that night after programing my ISP on fab PC . I install Ubuntu in my lappy using a virtual machine.

hardware setup for Program:

To program my ATtiny44 I need a programing bord to program it .for that I use one of the old program ISP bord to program my bord.first to ready hardware setup I Connect both ISP with each other using the Riban cable 6 header pin connecter.as shows in pictures.and a USB extension Cable to connect one programed bord as program with PC. As soon I plug in the ISP the Red LED on Bord starts. image not found

Driver installation failed in windos OS .

I do not have Ubantu OS install in my system so I use Fab-Lab PC to upload Code.

Build the Firmware:

To start with firmware first I download the firmware source code from brins blog and extract the zip filein my system. Open terminal program and cd into the source code directory.

For Installing the drivers in Ubuntu enter the following command, followed by the password when prompted:

sudo apt install avrdude gcc-avr avr-libc makep

Then I Run make command which build the hex file that will get programmed on ATtiny45. When the command completes, I end up have a file called fts_firmware.hex.

image not found

run make command.

Program the ATtiny45:

To programing my ATtiny I run this following commands in ubuntu terminal as follow:

Make flash (error)

image not found

run make flash error.

As I run this command in ubantu terminal panal Its shows me an Error massage showing that the Installation failed and a massage with Double check the connection and try agen. So I recheck all the connections once agans and chek the connectivity and direction of pins using the multimeter continuity function.

image not found

checking continuty between connecters.

I find one of the connection is fixed opposit way .I chenge the direction and rune the command one agens.

Make fuses

image not found

run make flash command .

After runing this command the green LED started blinking .

image not found

run make flash command.

Make restdisbl
this command is use to dissable the restart function in ATtiny 45 so that it become perminent programable for beng a in system programer.

image not found

USB detection .

At last for decteing my ISP connection in system I run Isusb command for decting the ATtiny as devise in system

image not found

USB detection .

Sourse Files