My mistakes are my stepping stones to success.

HOW TO MAKE ALMOST ANYTHING
FAB ACADEMY 2K19 HEMANG VELLORE

header-frontend
Work frontend
Assignment 5: Electronics Production

I’m allowing technology to become my wings to soar higher and faster than ever before.

Project Description - Explore Electronics Design

Group Assignment: Characterize the design rules for your PCB production process. Use the test equipment in your lab to observe the operation of a microcontroller circuit board. I did my Group Assignment along with Jaydip, my Team mate.

Individual Assignment: Make an in-circuit programmer by milling the PCB, program it. Then optionally try other PCB processes ATtiny45. Redraw the echo hello-world board add (at least) a button/LED (with current-limiting resistor). Check the design rules, make it and test it.
Extra credit: Simulate its operation and render it.

PCB

The Printed Circuit Board is mechanically supports and electrically connects electronic components or electrical components using conductive tracks, pads and other features etched from one or more sheet layers of copper laminated onto and/or between sheet layers of a non-conductive substrate. The Components are generally soldered onto the PCB to both electrically connect and mechanically fasten them to it.
I am learning to do some basic electronics production, specifically creation of a PCB by milling, then adding the components and finally burning the code to it. I’ve made an in-circuit programmer (FabISP) by milling the PCB. The FabISP is an in-system programmer for AVR microcontrollers designed for production within a FabLab. It allows us to program the microcontrollers on other boards which we make during our upcoming assignments. Currently I’ve chosen the FabTinyISP Minimal version - this uses ATtiny45.
We have two PCB Milling Machines - Modella MDX-20 and Roland monoFab SRM-20. I’ve used Roland monoFab SRM-20 for making my fabTinyisp board. By observing on Roland site, I’ve understood that SRM-20 is Roland's latest generation 3D desktop milling machine, incorporating innovative subtractive rapid prototyping (SRP) features to deliver accuracy, smooth finishes and efficiency in a compact format.

Model SRM-20
Cuttable Material Modeling Wax, Chemical Wood, Foam, Acrylic, Poly acetate, ABS, PC board
X, Y, and Z Operation Strokes 203.2 (X) x 152.4 (Y) x 60.5 (Z) mm
Work piece table size 232.2 (X) x 156.6 (Y) mm
Distance From Colet Tip to Table Max, 130.75mm (5.15 in)
Loadable Work piece Weight 2 kg (4.4 lb)
Control Command Sets RML-1, NC code
External Dimensions 451.0 (W) x 426.6 (D) x 426.2 (H) mm
Weight 19.6 kg (43.2 lb)




Group Assignment: We characterized the design rules for our PCB production process. Line Test: Manoj Sahukar and I teamed up for the assignment.


A. The line test images were taken from Fab Academy Electronics Syllabus.


B. We used FabModules to generate .rml files. Various other settings like process, speed, X, Y and Z coordinates were entered.

C. There was 1 line of a Rectangle Red which showed the jog path. The fab module did not create a close rectangle as can be seen form the picture above.

D. We cut the board on SRM 20 machine, gave 2 commands to trace the lines of the various thicknesses and cut the outline.


The line tool path looks as shown below.
The saved .rml image and after milling looks like this.


The board showed the smallest thickness line when it was cut properly, thus giving the green signal for the tracing and outline ahead.

We cut the board with the grinding machine as it was not cut from one side properly. Though this damaged the board, yet, the objective of the assigment was achieved.

We cut the board with the grinding machine as it was not cut from one side properly. Though this damaged the board, yet, the objective of the assigment was achieved.
Individual Assignment – I made an in-circuit programmer by milling the PCB, using SRM 20 and programmed it. Prof. Neil introduced various ways to make our 'Fabisp'. Sean, Alex, Tomás, Jonathan, Brian & Zaerc have worked using ATtiny45 and Ali, Valentin, Bas, Andy & David used Attiny44. I choose the Brian's Board to mill my PCB. So i downloaded the '.PNG' file of "Board traces" and "Outline".
PCB Setup – The PCB Board of a suitable size should be fixed on the sacrificial layer using the double sided tape. Care should be taken to evenly place the board. Any variation may cause breaking the tool. If the milling surface is not on level, then need to apply pressure gently on the raised areas. In case it does not work, redo the adhesive part.
Make sure that the level is distributed uniformly.

PCB Milling – I have used a Router for Milling the PCB. The tools used are

SVP Laser

CNC Router

Single Sided Copper clad Circuit PCB Board

FR1 double sided Tape

Engraving Bits

Attaching the Milling Bit – The Milling Head has to raise by using the “Tool Up” button on the Modella Control Panel. Using the Allen Key, gently loosen the Hex Nut on the Rotating part on the Milling Head. Then gently remove the existing Bit. Depending on the type of cut, Select from the two available Bits – 1/64 for Traces and 1/32 for Border Cuts.
While storing the bits, ensure that they should be placed in its appropriate container cap on. It is also a good idea to place a sponge or a soft cloth beneath the tool holder to ensure that the bit is not damaged in case it falls while removing it from its container. In my assignment, I have shifted the origin to 2.78 to mill on the space available at the top left corner.
Then moved the Bit down by using the “Tool Down” button in the front panel, till about 0.5 cms above the milling surface.
Finally used the Allen Key to loosen the Hex Nut holding the bit firmly so that it drops on the milling surface perfectly and fastened the Nut.

The board layout needs to be available as an image .png file in black and white colour.
The black portion is removed by the miller and the white portion remains as the circuit trace as shown below.


 

I have used Brain example as reference follwed as under – http://fab.cba.mit.edu/classes/863.16/doc/projects/ftsmin/index.html
Files from Brian: “Ttaces and “Outline Cut” files in PNG format of 1000 dpi were downloaded from Brian.
Fab Modules : I have used the Gab Modules to change the settings and format the png.file as under –
The process to convert images using FAB module -
1.Go to the online fab module.
2.Import image, set SRM-20 machine.
3. Make X,Y,Z to zero and Zjog-12.
4.Then calculate; then png image will be converted into .rml and we can see it’s traces.
5.Download the .rml image and share to the Vpanel.

Procedure I have followed -
Input File – selected the image .png format as the file is in this format.
Output File – Roland Mill .rml is the desired format of the output file as it is supported by SRM-20.
Process – For engraving and traces, I have selected PCB traces 1/64. For cutting PCB Outline 1/32.
Machine – I have used the SRM-20 milling machine for Milling.
X,Y,Z axis – all the 3 values were adjusted to 0mm.
Fan Speed – 4mm/s for both the processes – Traces and Outline.
Zjog- 12mm is the safe distance when the end mill moves to mill from one part of the design to the other.
The rml trace is shown below -
Calculate – Shows the path of the end mill in red lines on the file design.
Save – I have saved the file in .rml format and it is now ready for milling.
Setting the Origin – The origin has to be set to enable the machine start the operation, which is vital in order to select the desired area on the copper board on which I have to mill the pcb.

First, select the “move to xmin, ymin” option. This would move the milling head to 0 (20, 20) by default. Then I have changed the values to locate the desired area.

Calculate – Shows the path of the end mill in red lines on the file design as seen here under.

Save – I have saved the file in .rml format and it is now ready for milling. Setting the Origin – The origin has to be set to enable the machine start the operation, which is vital in order to select the desired area on the copper board on which I have to mill the pcb. First, select the “move to xmin, ymin” option. This would move the milling head to 0 (20, 20) by default. Then I have changed the values to locate the desired area.
This is the rml file trace - A5 Electronics Production_files\fts_mini_traces (2).rml
This is rml file cut - A5 Electronics Production_files\fts_mini_cut (2).rml

Milling the Board – I selected the PCB Traces option under the Process Drop Down Menu. Then adjusted the cut depth to 0.1mm, which mills the copper.Selected the Calculate Option to generate the tool path for the device. Went to the Tool Path and saw if all the traces were available. It was interesting to note that if we give 1 as the offset value, then all the copper, except the traces will be removed. Lastly, clicked the Send Button to send the tool path to the device to start cutting. A status window is displayed showing the elapsed time and remaining time. Mine too about 10 minitues to ill the traces.

Sacrificial Layer – As the name suggests, it sacrifices itself for saving the base plate from any damage, just in case something goes wrong and the milling bit goes further than expected, it might end up in damaging the base plate. The procedure is to apply the dual sided tape onto the copper clad board which is about the same or of a greater size to that of the plate which is going to be milled. For cleaning and placing the sacrificial layer, I have used Acetone to clean the surface. The width of the acrylic sacrificial layer in our lab is a smooth and uniform surface, which vitally decreases the chances of the bit getting damaged.

Sticking the FR1 board to the sacrificail layer – I stuck the double sided tape on the bottom of the FR1 board and stickerd it on the sacrificial layer.

V Panel Software and Machining –This software gives the access to set the origin and adjust the axis and give the command to the machine.
Setting the X&Y axis – Under the User Coordinate system and looking at the space on the FR1 board, the origin was set up.
Adjusting the End Mill in the Collate – The End Mill is inserted in the Collate and Moved to set the X, Y origin. I have set collate loose and allowed the End Mill to touch the board.

Setting the Z axis – After tightening collate, this fixed position was marked as the origin for Z axis.
Set up and Tracing – Under the Set up Command, the file was sent to the machine and it started tracing.
Operation – The end mill moved and traced the board. The speed and spindle value was visible on the software.

Changing the End Mill – The End Mill was changed from 1/64 to 1/32 for cutting the outline. I have followed the same commands keeping the X, Y origin positions constant. The Z origin was marked again because the position may slightly while changing the end mill.

Operation – This time to cut the board, the end mill went deeper showing the value in the display. The machine stopped on completing the instruction and then I removed the PCB from the sheet.

In case the task is not completed satisfactorily, then redo the traces with a little more depth as I did.
Once the traces are ready, then replace the bit with the 1/32 bit and repeat the same process with the border for cutting out. Be sure to “cut out board” option in the process dropdown menu.
I have the .png file that looks like the one below for border cutting.
When the process is completed, then I have removed the cut board from the mill.

Under User variables, select "Path" and click the Edit button.
If you don't already have a variable called "Path", click the new button to create it, enter "Path" without the name, and fill out the value as described below.
C:\Program Files\avr8-gnu-toolchain\bin
C:\Program Files (x86)\GnuWin32\bin
C:\Program Files\avrdude

Stuffing -Once the board is milled the next task is solder the board with the components. Stuffing means assembling the parts on the board. First, the components are selected and marked on a paper for clarity. Stuffing can be done by manual soldering using the electronics workbench or by a more automated process using pick-and-place and reflow oven.

It is important to identify and note the orientation of the parts, which go into the Board. It is suggested to palace them in a mark able tray/sheet to solder them onto the board. The zener diodes are marked both in and on the drawing and on the packages, with a little line on the cathode side.
The LED cathodes on the PCB drawing are marked with dots and thicker lines. The one in our lab has a green line visible on the cathode side of the epoxy lens.
Soldering - Soldering is a process in which two or more items are joined together by melting and putting a filler metal into the joint, the filler metal having a lower melting point than the adjoining metal. Unlike welding, soldering does not involve melting the work pieces.

Material Used for Soldering-
  • Sand Paper – I scrubbed the PCB board with the sand paper. This made the surface rough and easy for the filler to stay on the board.
  • Components of the Circuit – I have used the Fab Tiny ISP parts as follows for my Brain Board.
1x ATTiny 45 / ATTiny 85
2x 1k / 2x 499 Resistors / 2x 49 Resistors
2x 3.3 v zener diodes
1x Red LED / 1x Green LED
1x 100nF Capacitor
1x 2*3 pin head

Equipment Used for Soldering –
Filler – Wired melted in contact with the soldering iron and dried immediately the moment it is place on the PCB board which fixes the board and components.
Flux – This chemical facilitated my soldering process. I tried both liquid and solid. But I enjoy with the liquid flux.
Soldering Iron Rod – I have used the soldering rod @333C to melt the filler and place it between the components and the board. Then placed back the iron rod in the stand.
Hot Air Gun - The hot air at a very temperature melted the filler instantaneously. This tool was very handy during the DE soldering.
Exhaust Fan – This exhaust fan pulls off the gases released during melting the filler.
DE Solder Pump – The pump sucked the filler and helped removing the components from the board. The Mr. Cleaner.
Tweezers – The tweezers were very helpful to pick and place the components onto the board.
Magnifying Glass – The components are marked and the words written on it are tiny. This tool helped me a lot in seeing the board clearly.
Night Lamp – The light was useful in identifying the small components of the circuit and find the gaps to solder.

Fixing and Handling – By looking at the diagram fro Brain, I have placecd the above components using the equipment soldered my PCB.
I faced an epic failure as it got damaged; but moved ahead to build four more PCBs.

Then I have built another one and more. But the final built was a good one, which works after it bork using for electronics design.

Testing – I have tested the soldered PCB’s using a Digital Multimeter. The PCB test of a board will use capacitance and resistance. The Capacitance test will test for opens and shorts by sending a charge on the trace and then probe each net to measure the induced capacity. The Resistance test measures resistance as the current flows through a conductor/trace, in ohms. I have also checked for the continuity between the soldered components and the traces by using the continuity mode on multimeter and the LED is blinking wbhen connected to the laptop as shown below.
Programming – It is the process of taking an algorithm and encoding it into a notation, a programming language, so that it can be executed by a computer. Although many programming languages and many different types of computers exist, the important first step is the need to have the solution. I have followed this process http://fab.cba.mit.edu/classes/863.16/doc/projects/ftsmin/windows_avr.html
Later installed the Atmel GNU Toolchain from https://www.microchip.com/mplab/avr-support/avr-and-arm-toolchains-c-compilers and ran the installer. When asked where to extract the files, click the "..." button and navigate to C:\Program Files, then click Extract. I Download Gnu Make and launch the installer. Accept the default location for the installation.
I downloaded Avrdude and extracted the zip file. Then extracted the file copy and pasted in 'C:\Program Files' and completed the Installation.
Later installed the Atmel GNU Toolchain from https://www.microchip.com/mplab/avr-support/avr-and-arm-toolchains-c-compilers and ran the installer. When asked where to extract the files, click the "..." button and navigate to C:\Program Files, then click Extract. I Download Gnu Make and launch the installer. Accept the default location for the installation.
For updating the path I opened the Control Panel, then go to System, choose "Advanced System Settings". Under the Advanced tab, click the "Environment Variables" button. As I din't have a variable "Path", I clicked the New button to create it by entering the "Path" without the name. These three values were added as follows: C:\Program Files\avr8-gnu-toolchain\bin
C:\Program Files (x86)\GnuWin32\bin
C:\Program Files\avrdude

As per the assignment requirement, I programmed my FabISP board with Jaydip’s 'FabISP Programmer' using 'Zadig' software. Zadig is a Windows application that installs generic USB drivers. Then I downloaded Zadig and selected the "USBtinySPI" device from the list.

And selected

Before the Programming we need to edit "Makefile". But we need to set the programmer name like usbtiny and edited the Makefile.

Then I connected them with jumper wires and started programming on my laptop.

I ran the following commands.

make flash

Using this command I burned the program in my board using another FabISP.

make fuses


Fuse memory is a separate chunk of flash that is not written when you update the firmware.

make rstd


Using this command I made my board as a Fab ISP Programmer.
Testing the Fab ISP Programmer – After completing the burning process, I checked my Fab ISP Programmer by connecting my Laptop using the Male-Female USB cable. Then I checked in Computer management>Device manager>libusb-win32 devices as shown below.

My USBtiny device is now showing in the 'Computer management>Device manager'.

Exploring Mods in browser recommended by firefox/chrome.

Then Right click anywhere and select PROGRAMS -- select OPEN SERVER PROGRAM



Select ROLAND > MILL > SMR20 (choose the machine you will use) 

I added another module to save the file automatically. So looked for the program/component that outputs the file.  Then, I Right clicked anywhere in the white space and selected MODULE > OPEN SERVER MODULE > SAVE FILE. Then connected 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. 

Opened my traces of the image file - Go to READ PNG MODULE SELECT- PNG FILE - selected traces image. 

SET PCB Default module and click in MILL TRACES.
<

For saving file. Right click-->Modules-->open server module.

file-->save

Then I joined the Input file to Output file.

Mill Raster 2D Module click in calculate. When done, the file was saved automatically in my download folder. I have also made a flexible PCB.

Flexible Fab ISP - I have also made a flexible PCB on the Vinyl Cutter. Procedure followed - I’ve downloaded the .png file from Brian and opened it in the terminal. Commands used -

Sudo Fab
Enter password
From input format select (image).png
Selected Roland Vinylcutter (.camm)
make_png_camm

Then I loaded .png file and sent it to the Vinyl Cutter.

I’ve cut the print on Vinyl Sheet and removed all the unwanted parts by using the X-Acto knife. As seen below, it’s ready and working.
This is the png file trace - A5 Electronics Production_files\fts_mini_traces.png
This is png file cut - A5 Electronics Production_files\fts_mini_cut.png

Research, Trail & Error I have tried out my pcb design on this laser metal engraving machine from a commercial vendor Fine Mark Laser Engravers in Hyderabad after going through the following link as shown below. http://fabacademy.org/archives/2015/doc/fiber-laser-cutting-pcb.html This is the first trial – Power 95, Frequency 10,000 and Speed 300 on 10 watts on 5 passes.

The second trial – PCB was burnt after 3 passes.

The third trail – On another machine with Power 80, Frequency 75,000, Speed 600 on 50 watts on 12 passes.

You can view the videos from this link below –
https://photos.app.goo.gl/1mcs6J8xZUdErJMQ8

Design file –
A5 Electronics Production_files\new uno.brd

Learning Outcome – I have got an idea about PCB milling and programming by doing a lot of learning and relearning, while unlearning. Must admit that my soldering skills have improved now. The fab modules on browser using MODS to ease the process was exciting. Now I glad that I have made PCBs, make a Programmer and Program it on my own.

Reference –
http://fab.cba.mit.edu/classes/863.16/doc/projects/ftsmin/index.html
http://fabacademy.org/2019/docs/FabAcademy-Tutorials/week04_electronic_production/srm20_windows.html
http://fab.cba.mit.edu/classes/863.16/doc/projects/ftsmin/windows_avr.html
https://www.microchip.com/mplab/avr-support/avr-and-arm-toolchains-c-compilers
http://fabmodules.org/mods.html
http://fabmodules.org/mods.html

Let's Connect