To do list:
Group
- characterize the design rules for your PCB production process
Individual
- make an in-circuit programmer by milling and stuffing the PCB,
- test it,
- then optionally try other PCB processes
Week 4 "hero shot":
Figure 0: Produced programmer, programming Jonah's drone to turn one LED on
1 Group assignment
I worked with
Serena, Benoit and Jonah (Fab Manager) to characterize the design rules
for the PCB production process with the laser cutter of the Lab.
1.1 Overview
We first used the fiber laser to engrave the copper, keeping only the circuit we want to produce.
We then used the
laser to cut the fiberglass to a desired shape
1.2 Step by step PCB design process
Step 1
Import the .png file describing the PCB in corelDRAW as shown in figure
1.
Figure 1: corelDRAW interface
Step 2
to open the print menu as shown in figure
2.
Figure 2: corelDRAW print menu
Step 3
Select the
appropriate parameters, reading the data sheet of the laser cutter, to
raster with the fiber laser, as shown in figure
3.
Figure 3: Epilog properties menu
Step 4
Engrave the copper, which will remove all the black in the .png file.
At this step the PCB should look like as in figure
4.
Figure 4: PCB after fiber laser engraving and before cleaning step
Step 5
Add the outline to cut in corel draw.
Be careful to put it inside the zone where copper have been removed, as
laser isn't powerful enough to go through the copper.
Step 6
Step 7
Select the appropriate parameters, reading the data sheet of the laser cutter, to vector cut with
laser.
Depending on the thickness of the fiberglass it may take several paths to cut trough.
On Digiscope it takes 18 paths to cut the fiberglass we where using.
Step 8
If everything worked fine remove the plate from the laser cutter as shown in figure
5
Figure 5: PCB cut with
laser
Step 9
If you have been to
impatient and didn't make enough pass of the laser, use a utility knife
to painfully cut the fiberglass as shown in figure
6.
Figure 6: You strongly don't want to have to do that...
Check PCB design
Use a microscope to check for hair as shown in figure
7.
Figure 7: Microscope check to detect hairs of copper.
Remove hair of copper using a utility knife.
Check that there are no more hair with a beeping oscilloscope.
Individual assignment
This section have the same steps.
Introduction
As stated in
Brian's tutorial: “The FabTinyStar is yet another version of an AVR ISP
programmer/board that can be produced in a fab lab using a milled PCB
and readily available components. The project is based on the efforts of
many people. For more history of the FabTinyStar and the people who
have contributed to it, please refer to
Zaerc's FabTinyStar page”.
PCB Fabrication
Download the trace and the outline and use the step described in the group assignment section to obtain this PCB.
Figure
8 shows the PCB after the laser cutting steps
Figure 8: PCB and ATtiny45.
Assembling the PCB
Step 1
Wrote down all the name of the parts on a paper in one column and put a double sided tape right to it.
Step 2
Pick up each piece on the inventory of your Lab.
Step 3
Glue the piece near it corresponding name as shown in figure
9.
Figure 9: List of the part to solder to the PCB (Jonah's tips)
Step 4
Use the .png file
10 and the diagram
11 to understand where each part should go.
Figure 10: PCB .png file
Figure 11: PCB diagram
Step 5
Be careful to solder component with a polarity in the right orientation.
Solder each component starting from the center and lower.
Use the microscope when soldering.
Step 6
After each solder attempt check for conductivity with the voltmeter in beep mode.
Figure
12 shows my PCB with all the soldered parts.
Figure 12: PCB with all the soldered parts
2.4 Improve USB connector
Add a lot of solder to adjust the height of the USB male connector.
2.5 First checks for the PCB
Test the PCB by connecting on a computer using a USB extension cable.
As shown in figure
13, the red led is on when the PCB is connected to a computer.
Figure 13: Programmer LED on, when connected to a computer
If not check the connectivity and add some solder to the male USB connector of the PCB board.
2.6 Software installation
Step 1
sudo apt install avrdude gcc-avr avr-libc make
2.7 Get and build the Firmware
Step 1
Download the firmware source code and extract the zip file
Step 2
Open your terminal program and into the source code directory.
Step 3
Step 4
Check for a file called “fts_firmware.hex” using the command
Figure
14 shows the terminal output after running the command:
Figure 14: Terminal screenshot run make
2.8 Program the ATtiny45
Step 1
Update the Makefile using for example the command
in the Makefile change the line
to the programmer name you are using as shown on figure
15.
Figure 15: Edit Makefile
Step 2
Connect the programmer to the ISP header on your board. Figure
16 shows a “atmelice_isp” programmer connected to the board.
Figure 16: Connect Atmel programmer and "to be" programmer
Check the correct orientation, as it is important to get pin 1 in the right place.
Step 3
Type in the terminal the command:
Terminal output should like the one in figure
17
Figure 17: Terminal screenshot make flash
Step 4
Type in the terminal the command:
Terminal output should like the one in figure
18
Figure 18: Terminal screenshot make fuses
2.9 Test the USB functionality
Step 1
Unplug the programmer and the FabTinyISP from the computer USB ports.
Step 2
Remove the connection between the programmer and the FabTinyISP.
Step 3
Plug only the FabTinyISP to the computer USB port.
Step 4
Type the command in a terminal
If you see a "Multiple Vendors USBtiny" device on the list as in figure
19, then it worked!
Figure 19: List of the USB devices
2.10 Blow the reset fuse
Step 1
Turn the ATtiny45's reset pin into a GPIO pin, using the command
Step 2
Remove the bridge on the solder jumper.
2.11 Test your programmer
I have use a code written by Jonah to program his drone led to turn on.
We have to do several try due to connectivity problem with the USB male connector of the board.
But programming was successful as shown in figure
20.
Figure 20: Program Jonah's drone to turn LED on