Assignment 6                                            1.3.2017

Topic: Electronics design

Task:
Redraw the echo hello-world board, add (at least) a button and LED (with current-limiting resistor), check the design rules, and make it.
Optional: simulate its operation, measure its operation.
Don't rely on a printed document. Check the information for each assignment in this living document each week.

Learning outcomes:
Select and use software for circuit board design.
Demonstrate workflows used in circuit board design.

Have you:
Shown your process using words/images/screenshots.
Explained problems and how you fixed them, including how you worked with design rules for milling (DRC in EagleCad and KiCad).
Included original design files (Eagle, KiCad, Inkscape, .cad - whatever).

NB. Also, if you make a board and it doesn't work; franken-hack that board (with jumper wires etc) until it does work, then make a new one with the knowledge you have gained.

Electronics design tool - Eagle

I downloaded Eagle (8.0.2) software for electronics design from http://www.autodesk.com/products/eagle/overview page.
Then, I downloaded fab.lbr component library from Fab Aademy course page: http://academy.cba.mit.edu/classes/electronics_design/index.html to folder .../Eagle 8.0.2/lbr.

fab lbr

Then, I selected the fab.lbr library and activated it for use in Eagle by the second button of mouse.

fab lbr 0

fab 1

fab 3

Then, I created new project and new schematic and ADDed new components from fab.lbr library. Here I select ATTINY44 microcontroller with SOIC14 package.

schema01

And similarly, I added all components I needed to my echo hello-world board. I found VCC symbol from supply1 library.

components01

I needed following components:
Attiny44 SSU           
Resonator 20 MHz   
Button switch
Resistors 1 kΩ and 10 kΩ
Capacitor 1 uF
LED RED
FTDI-SMD header
6-pin  connector

I corrected my plan several times.  Here is the final result. The red line shows the last correction I done manually. Dorina recommended to use some more components, but I didn't add any more. 
scenma 4

During many iterations, I designed also my board by command: File > Switch to board. Here is one example of component layout before routing. I have moved components to working area and further to optimal places as I thought.

board31

 I used DRC tool to set clearances 16mil between components. Also, I set minimum width of lines to 12mil.

clearance
Then, I generated optimal routes by Tools > Autorouter tool.

autorouter

I added zero resistor and removed it.  I changed connections of led and button to the Attiny44 and connected their grounds directly to other tracks. Also, I changed order of the resonator connections. After many iterations and corrections, I generated the final result bellow.

Finally, I checked errors by Tools > Errors tool. No errors.

board 5

Now was time to do traces and outlines for milling. I selected only top layer visible by command: View > Layer settings. Then, I exported my board as image. I selected monochrome and resolution to 1500 dpi.

Then, I opened the image by Gimp and did cropping by command Image > Autocrop image. I created a second layer with foreground color black by Layer > New layer. I increased layer size 1.6 mm in each directions and centered the image by command Layer > Layer boundary size. Then, I extended the image size to layer size (Fit canvas to layers) and changed layer order. Next, I enlarged image size to fit all layers by command Image > Fit canvas to layers, made borders black by filling the empty area by black color and saved the image as hello-traces.png. Similarly, I made area inside borders white and saved the image as hello-outlines.png. The board size was about 27x25 mm. These png files updated later as I tell at the end of this page.

Board milling and soldering

I used again fabmodules.org page and generated milling files for Roland SRM-20. Now, I used v-shaped bit for traces milling and it made very clean-cut. Then, I used pick and place machine and reflow oven for soldering of small parts. A button and connectors I soldered by hand.

my board

Testing

blinkI tested the operation of my board and programmed a short blink program. I used Arduino IDE environment and Arduino UNO as ISP programmer.
Arduino UNO board needed Arduino ISP program. I added also Attiny board support to the IDE.
And as a result, the board blinks the led slowly and if  I press the button it blinks fast. Also, I used my Fab Tiny ISP programmer with Arduino IDE and it worked well.
One important issue is the need of external power +5 V. Fab TinyISP doesn't provide power for board to be programmed.

b code
Arduino pins were:   12 MISO -- VCC
                                  13 SCK   -- MOSI  11
                                  10 RE      -- GND
 


new board

Original Eagle files are here:

schematic
board layout




Post-registered note:

I made a new board, because power pin from FTDI-SMD header broken out. I cut the 2x3 connector from 2x5 piece and cur too near the pin.
New board is little bigger. The 6-pin connector seat now correctly on top of board. And, I soldered FTDI-SMD header in bit wrong place. I took it out, replaced it by new one and made little repair, because foil was damaged during took-out.

However, here we go!


This new design is presented as png files as following: hello-traces6.png and hello-outlines6.png.