Skip to content
Snippets Groups Projects
Commit d1701392 authored by Mitalee Parikh's avatar Mitalee Parikh
Browse files

elecprod software install

parent 3b26b893
No related branches found
No related tags found
No related merge requests found
Pipeline #231582 passed
Showing
with 93 additions and 25 deletions
......@@ -9,9 +9,9 @@
then optionally try other PCB processes
### Objectives
To produce a PCB using one or more manufacturing processes
To solder components and test the board
To program the PCB to become a programmer
- [x] To produce a PCB using one or more manufacturing processes
- [ ] To solder components and test the board
- [ ] To program the PCB to become a programmer
#### Introduction
This week is about learning to fabricate a PCB, not necessarily design it. There a some different options of in-system programmers in the [FabAcademy notes](http://academy.cba.mit.edu/classes/embedded_programming/index.html#programmers). In the AVR family, there are boards based on the the ATtiny45, ATtiny44 and ATmega16U2.
......@@ -26,6 +26,7 @@ An in-system programmer is basically a...
#### PCB fabrication Workflow
##### Create toolpaths
First step is to download the design files for the traces and the outline of FabTinyISP from [Brian's documentation page](http://fab.cba.mit.edu/classes/863.16/doc/projects/ftsmin/index.html#check).
The traces are the thin pipelines that connect the footprints of components.
![](http://fab.cba.mit.edu/classes/863.16/doc/projects/ftsmin/fts_mini_traces.png)
......@@ -48,32 +49,32 @@ But it shows me unclear toolpaths with default settings, for both the traces and
I'm not sure why these errors occured. I try using FabModules with the same files and same settings. And it works perfectly. So I guess Mods has a different way to read these files.
These are the steps for FabModules:
* Select **input format: png** (same as the file downloaded)
* Select the traces file from your directory
* The input section on the rights shows the meta info of the image. Check the resolution is **1000 dpi** and the overall size. The - image is 1:1 so the PCB will be the same size as mentioned here.
* Select **output format: rml** (depends on the machine you use; Roland machines use rml)
* Select **machine** from the dropdown: **SRM-20** (I'm using this at the lab)
* **Speed: 4 mm/s** Standard speed used with a 1/64in endmill
* **x0, y0, z0** all **0** this makes the cutting start exactly where you set the origin on the machine
* **zjog: 2 mm** is the distance the endmill travels in z direction when it lifts up to move in the air to another xy coordinate
* **xhome, yhome, zhome** are the coordinates the endmill moves to at the end of the job, i leave this empty so it take the default - value of the machine.
* Select **process: PCB traces (1/64)** this basically fills in default values for the standard trace milling process
* **Direction: climb** here is a diagram that explains climb vs conventional cutting
* **Cut depth: 0.1mm** to cut through the upper layer of the FR1 boards
* **Tool diameter: 0.4 mm** (=1/64 in)
* **Number of offsets: 4** this is the number of paths around the traces, if its too little soldering components is difficult, if it - too much, it takes a long time to mill, 4 is just enough (-1 to remove everything completely)
* **Offset overlap: 50%** The overlap between two paths, to ensure no material is left with error
- Select **input format: png** (same as the file downloaded)
- Select the traces file from your directory
- The input section on the rights shows the meta info of the image. Check the resolution is **1000 dpi** and the overall size. The - image is 1:1 so the PCB will be the same size as mentioned here.
- Select **output format: rml** (depends on the machine you use; Roland machines use rml)
- Select **machine** from the dropdown: **SRM-20** (I'm using this at the lab)
- **Speed: 4 mm/s** Standard speed used with a 1/64in endmill
- **x0, y0, z0** all **0** this makes the cutting start exactly where you set the origin on the machine
- **zjog: 2 mm** is the distance the endmill travels in z direction when it lifts up to move in the air to another xy coordinate
- **xhome, yhome, zhome** are the coordinates the endmill moves to at the end of the job, i leave this empty so it take the default - value of the machine.
- Select **process: PCB traces (1/64)** this basically fills in default values for the standard trace milling process
- **Direction: climb** here is a diagram that explains climb vs conventional cutting
- **Cut depth: 0.1mm** to cut through the upper layer of the FR1 boards
- **Tool diameter: 0.4 mm** (=1/64 in)
- **Number of offsets: 4** this is the number of paths around the traces, if its too little soldering components is difficult, if it - too much, it takes a long time to mill, 4 is just enough (-1 to remove everything completely)
- **Offset overlap: 50%** The overlap between two paths, to ensure no material is left with error
![fabmodules](./images/ep/fabmodules.gif)
With these settings, I **calculate** the toolpaths for the traces and **save** the rml file.
Making the outline has the same process except the following changes:
* Select the outline file from your directory
* Select **process: PCB outline (1/32)** because outline is milled with a different endmill
* **Cut depth: 0.6mm** keep this a bit smaller than the tool diameter, so it doesn't break the bit
* **Tool diameter: 0.8 mm** (=1/32 in)
* **Stock thickness: 1.7 mm** Thickness of the FR1 stock measured with a calliper
* **Number of offsets: 1** The outline can be cut with just 1 path around the board
- Select the outline file from your directory
- Select **process: PCB outline (1/32)** because outline is milled with a different endmill
- **Cut depth: 0.6mm** keep this a bit smaller than the tool diameter, so it doesn't break the bit
- **Tool diameter: 0.8 mm** (=1/32 in)
- **Stock thickness: 1.7 mm** Thickness of the FR1 stock measured with a calliper
- **Number of offsets: 1** The outline can be cut with just 1 path around the board
Since the cut depth is 0.6, to cut through the 1.7 mm stock, it will run the path 3 times till it cuts through the entire thickness of the stock. This can be seen when you **calculate** the toolpath.
......@@ -81,6 +82,7 @@ Since the cut depth is 0.6, to cut through the 1.7 mm stock, it will run the pa
Here are the toolpaths for [traces](./images/ep/mitalee-fts_mini_cut.rml) and [outline](./images/ep/mitalee-fts_mini_traces.rml).
##### Milling the board
After saving the toolpaths, next step is to prep the machine for milling.
On the left bottom corner, fix the FR1 board with a double-sided adhesive tape.
![stock](./images/ep/stock.jpg)
......@@ -91,7 +93,7 @@ SRM-20 can be controlled with a V-panel.
Using the XY and Z settings in the centre of the panel, move the Z to maximum to make space for fixing an endmill manually. Loosen the collet with a hex-key, insert the 1/64in endmill and tighten it snugly.
![endmill](./images/ep/164bit.jpg)
Next move the XY to where you want to define the origin point. THe origin is at the left bottom of the file. So pick a spot close to the left bottom corner of the board. Bring Z close to the surface using 100x and 10x steps. When it is just above the stock but not touching it, loosen the collet while holding the bit, lit it gently fall on the stock and still while holding the bit in one hand tighten it with the other. This is one way to ensure a proper Z origin on the top of the stock surface.
Next move the XY to where you want to define the origin point. The origin is at the left bottom of the file. So pick a spot close to the left bottom corner of the board. Bring Z close to the surface using 100x and 10x steps. When it is just above the stock but not touching it, loosen the collet while holding the bit, lit it gently fall on the stock and still while holding the bit in one hand tighten it with the other. This is one way to ensure a proper Z origin on the top of the stock surface.
![z orogin](./images/ep/stock.jpg)
Now, on the v-panel set the XY origin and the Z origin here. Since we've adjusted the feeds and speeds in FabModules already, we do not change them here. Select **cut** and then on the pop-up window clear all files in the output file list before adding the traces rml.
......@@ -112,3 +114,69 @@ This is how the cut result looks at the end of both jobs.
I used a slotted screwdriver to remove the ISP from the machine bed.
![](./images/ep/removeboard.jpg)
Next, I removed the copper layer near the usb side of the board with a cutting knife and cleaned up small bits and pieces of copper.
![](./images/ep/removecopper.jpg)
##### Soldering Components
I make a list of components according to the Brian's documentation, and gather all components from the FabLab stocking shelves.
![shopping list](./images/ep/shoppinglist.jpg)
Next, I prep the workbench at the lab with a soldering iron, solder wire, fume extractor, tweezers, desolder braid, soldering stand, and a vacuum pen.
![soldering setup](./images/ep/solderingsetup.jpg)
![tools](./images/ep/tools.jpg)
Next, using the reference image and the schematic to locate where each component goes.
![](./images/ep/schematic.jpg)
I start soldering from left to right top to bottom - starting from the microcontroller > diodes > resistors > capacitor > LEDs and finally the header.
This is how the board looks like:
![soldering setup](./images/ep/soldered.board.jpg)
##### Checking the board
First I inspected the board visually to check if all the traces were clear from solder bits and all the connections were clean. I also checked if all components were soldered on the correct footprints and in the correct orientation.
![](./images/ep/tested.jpg)
Next, I use a multimeter to check thr resistance across resistors and voltage across Vcc and GND. Everything seems alright.
![](./images/ep/multimeter.test.jpg)
Next, I make assemble a ribbon cable, 6 thin cables connected side by side with female headers at both ends. Trick is to keep booth ends in the same orientation to correct and quickly attach the headers. After presseing them lightly, I used a mallet to fix them properly.
![](./images/ep/ribboncable.jpg)
##### Installing software packages
To program the board, there a steps you need to follow to install the development environment first. I follow the steps from [this tutorial](http://fab.academany.org/2020/labs/uae/students/fatima-alhashmi/week5/week5.html) and [this guide](./images/ep/avr_steps.pdf).
1. Installed [homebrew](https://brew.sh/) package manager. In a terminal window pasted this from the website:
'''
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
'''
![](./images/ep/homebrew.jpg)
It asked for sudo acess, I typed in my computer password.
![](./images/ep/password.jpg)
2. It started installing
![](./images/ep/installing.jpg)
But half way through I got an error:
![](./images/ep/error.jpg)
I typed in the command that the error suggested:
'''
git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow
'''
This solved the error. I reinstalled Homebrew.
![](./images/ep/reinstalling.jpg)
![](./images/ep/installing.again.jpg)
3. Next, install brew tap
![](./images/ep/brew.tap.jpg)
4. Install brew binutils
![](./images/ep/binutils.jpg)
5. Install brew avr-gcc
![](./images/ep/gcc.jpg)
![](./images/ep/avrdude.jpg)
6. Quit terminal, reopen a new window and check the version and make file
![](./images/ep/version.make.jpg)
File added
docs/images/ep/avrdude.jpg

5.72 KiB

docs/images/ep/binutils.jpg

28.9 KiB

docs/images/ep/brew.tap.jpg

18 KiB

docs/images/ep/error.jpg

31.9 KiB

docs/images/ep/gcc.jpg

68.1 KiB

docs/images/ep/homebrew.jpg

12.5 KiB

docs/images/ep/installing.again.jpg

24.3 KiB

docs/images/ep/installing.jpg

18.1 KiB

docs/images/ep/multimeter.test.jpg

79.7 KiB

docs/images/ep/password.jpg

6.23 KiB

docs/images/ep/reinstalling.jpg

34.9 KiB

docs/images/ep/removecopper.jpg

36.7 KiB

docs/images/ep/ribboncable.jpg

62.9 KiB

docs/images/ep/schematic.jpg

175 KiB

docs/images/ep/shoppinglist.jpg

46.9 KiB

docs/images/ep/soldered.board.jpg

30.6 KiB

docs/images/ep/solderingsetup.jpg

77.7 KiB

docs/images/ep/tested.jpg

119 KiB

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment