7. Electronics design¶
use the test equipment in your lab to observe the operation of a micro controller circuit board.
Individual Assignments# redraw the echo hello-world board, add (at least) a button and LED (with current-limiting resistor) check the design rules, make it, and test it
echo hello-world board¶
Based on the sample board, I decided to add a led and a tact switch. I read the data sheet of ATTiny44 to check port definition. Port A is a 8-bit bi-directional I/O port. So I selected PA3 and PA7 that are not used in the sample board. The component list I used is as follows.
|micro controller||ATTiny 44||1|
|header||6pin for FTDI||1|
|header||6pin for ISP||1|
In order to redraw the echo hello-world board, I learned a EDA software Eagle, stands for “Easily Applicable Graphical Layout Editor”. The characteristics is:
- Free software
In case of the free license, the board is limited to 2 layers and the board size is up to 80 mm2. Though it is restriction, most of my works will not matter.
Rich component library
Symbols and footprints of the main components are included in the library. So I can quickly design the schematic and pattern. It is available to add a new component the library.
Autodesk family Eagle is acquired by Autodesk in 2016. So powerful relationship with Fusion360 is expected.
Since I had already installed Eagle and Fab Academy’s library, I created a new project and started schematic design.
To add components, I pressed “add” icon in the left tool window. Then the library window was displayed automatically and I drugged necessary components one by one to SCH (schematic) window. Almost all parts are included in the Fab Academy’s library. Only GND and VCC were chose from supply1 library.
Add other components
In order to arrange and connect between components, I used following tools using GUI icon.
- move = moves parts
- rotate = rotates parts
- name = names parts and lines. The lines with same name are automatically connected. ( pop up windows is displayed to confirm the connection)
- value = adds a value to parts such as “10KΩ” for register
- net = connect components
I also tried command line, for example type “delete” then select a component to be deleted.
Then I verified the design using the ERC (Electrical Rules Check). There was no error. There were three warnings, but these were no problems.
Board pattern design¶
I opened brd(board) window. I set grid parameters for board window. The “size = 0.05 inch ” means grid size, and “alt=0.005 inch” means fine adjustment using Alt key ( Mac: option key).
Design Rules settings¶
I set design rules parameters for clearance.
Line width setting
The components and the connection I designed in SCH were automatically displayed in the lower left of the BRD window. I grouped the components, then moved to the right window, then started pattern design. With reference to the sample board, I arranged and wired components using following tools.
- Route = wires components to make pattern
- Move = moves components
- Rotate = rotates components
- Ground = shows ground pattern
I realized that I chose a wrong capacitor. So I tried useful “replace” tool.
1. push “replace” GUI icon
2. select the wrong capacitor first
3. select the capacitor to be replaced in library , then the component is replaced automatically.
Finished the pattern design as follows.
Although it looked fine by visual inspection, air wiring error were displayed. To find the error point was not difficult. Selected an error from the list, then white mark was displayed on the pattern. Then I wired again carefully.
All errors were fixed as follows.
To design outer shape of the board, I changed the layer to “48 document”. Then using the polygon tool, wrote rectangle shape.
The white rectangle indicates the outer shape of the board. I adjusted the yellow rectangle area to fit the white shape.
Select “File > Export > image” to exported the image as png format. Then changed resolution to 800dpi and checked monochrome.
route & outline
Although the mods workflow was almost same as that of week#5 assignment, I added an image correction step this week. Instructor advised me that when exporting images from Eagle using Mac retina model, the resolution doubles by bug(?). To correct the problem, there are some solutions.
- Use external monitor ( lower resolution than retena) when export the image
- Change the resolution of the image using image editor like Photoshop
- Change the resolution of the image in mods
I selected the #3 solution and changed the dpi from 800 to 1600.
Checked the route with visual inspection
I used Roland SRM-20 that I used week#5. I set 1/64 bit and engraved the inner route. As the milling was fine,I changed the bit to 1/32 and start cutting of outline. Then I heard the strange sound during the second lap. So I paused the cutting and checked the condition. It seemed that the screw tightness was so weak that the bit droped gradually. It harmed the inner route, I had to cut again.
Started the soldering from ATtiny44 with care of the orientation. I finished all the soldering without problems so started testing with a multimeter.
Then I found pins on one side of ATtiny 44 shorted. The pattern image was good, but the milling result was shorted. I should have check carefully before soldering. According to my instructor, such a milling error seemed to occur frequently.
How to fix:
1. Hold the parts to be removed (ATtiny44) with tweezers
2. Heat the parts using heat gun until it drops
3. Cut the unnecessary pattern using ultrasonic cutter
ATTiny was removed successfully
Using FabISP board I created at week#5, I programed the echo hello-board.
- Connect Mac usb port and 6pin header using FTDI/USB serial converter cable
- Connect Mac usb port and 6pin isp header using usb cable
Followed the instruction, I programmed the sample c code to the board. The step was as follows.
$ make -f hello.ftdi.44.eho.c.make $ sudo make -f hello.ftdi.44.eho.c.make program-usbtiny-fuses $ sudo make -f hello.ftdi.44.eho.c.make program-usbtiny
Since I had not installed FTDI driver, error message was displayed. So I checked the specification of the cable, then installed the D2XX driver via command line. Then the program was done successfully.
Using the Arduino IDE, I tested the echo back. Opened the serial moniter, then set the same baud rate 115200bps as the program. Then push a key on the keyboard, then the character was echo back to the serial monitor. I used the board for the group assignment.