Electronics Design
Group assignment
in this part of the assignment, we test the trace's connectivity of the Amin Yousef board using the digital multimeter.
VCC-GND
here we check the connectivity between VCC and GND and to do so we buy the digital multimeter in connectivity mode (it should make a sound like beeeeep when you select this mode) then we butt the poles on VCC and GND it should not make any sound and the number that appear on the screen represent the resistance between VCC and GND inside the controller which is a good indicator that tells us that the controller works probably , other if the multimeter make any sound that means that there is a short ciruct between VCC and GND
after that we check the VCC to VCC connectivity and GND to GND connectivity and the communication pins connectivity
GND to GND connectivity
VCC to VCC connectivity
Individual Assignments
Design Echo Hello Board
this week we have an assignment to design, mill a PCB, and upload a code into it so I decide to use EAGLE software to design the board . the design is a two-step process first you have to draw the schematic and arrange the terraces then you have to layout your PCB. so let's learn how to design PCBs and how to deal with EAGLE software the first step is to make a new project that will contain the schematic and board layout to start a new project right click on "projects" then a new project
after making a new project and naming it as in my case "first_project" let's start our first schematic. right-click on the project that we make it then new>> schematic
this screen will appear
now it's important to import fab labs library to make the design with the right footprint dimensions.
you can install the component library from here then you have to move the library to “..\Documents\EAGLE\libraries”.
now from Library then Open library manager.
then select “Available” tab Click on “Browse” and locate fab.lbr on your drive. Click “Open”. This will add fab.lbr to “Available” libraries list.
now you can make it usable by selecting the library then clicking use.
Schematic
after including the library lets import the component that we will need to redraw the schematic for this circuit and add a push button with LED
component | Lib Name | Qty |
---|---|---|
ATtiny44 | UC_ATTINY44-SSU | 1 |
Crystal 20MHz | XTAL_RESONATOR | 1 |
Header 3x2 ISP | CONN_03X2_AVRISPSMD | 1 |
Header 1x6 FTDI | CONN_06_FTDI-SMD-HEADER | 1 |
Capacitor unpolarized 1uF | CAP_UNPOLARIZEDFAB | 1 |
Resistor 10kOhm | R1206FAB | 3 |
Push button | SW_SWITCH_TACTILE_6MM6MM_SWITCH | 1 |
LED | LEDFAB1206 | 1 |
now after adding all the components that we need lets to connect it using the "NAME " tool ** ** to keep the schematic clear and understandable
after drawing the schematic let's generate the board to make the traces by pressing " generate/switch to board " ** ** that's will make this screen down below appears
before starting making the traces, we have to define clearance parameters Based on the traces milling tool that we will use later to mill the PCB. so go to tools DRC ** ** clearance tap then define your parameters in my case I'm using 1/64” (0.4 mm) milling bit so I define all my signals to 0.43mm and the increase 0.03mm was a safety offset
so now we can start routing using the Route Airwire tool ** ** of course you can change the position and orientation of the components to find the easiest way to make the PCB without making a mess. an additional point to make your PCB special is to write some things on it like your name or a special sentence that represent you using text tool
the next step is to draw the PCB layout. first of all, you have to select the "dimension" layer instead of the "top" layer or any layer else. now you can select the shape that you want to draw personally I use simple lines and some curves put you can use more complex shapes to draw the layout.
its time to export our design . we will export the traces and layout separately because each one has a different milling tool . so let's start with traces, to export only the traces hide all layers except the top layer, by clicking on the layer then on eye icon to hide the layers
go to file>>export>>image then chose a prober resolution and check the monochrome box to have a two-color image
and this will be the result
by applying the same steps on the outline we will get
MODS
before cutting we have to make the tool path using MODS so I use the following settings to mill the traces and the outline
description | Tool Diameter | Cut Depth | Max Depth | Offset Number | Speed | Origin |
---|---|---|---|---|---|---|
Mill Traces (1/64) | mm: 0.39624 / in: 0.0156 | mm: 0.1016 / in: 0.004 | mm: 0.1016 / in: 0.004 | 5 | 4 mm/s | x = 0 mm, y = 0 mm, z = 0 mm |
Mill Outline (1/32) | mm: 0.79248 / in: 0.0312 | mm: 0.6096 / in: 0.024 | mm: 1.8287999999999998 / in: 0.072 | 1 | 4 mm/s | x = 0 mm, y = 0 mm, z = 0 mms |
after applying the values in the table these was the results.
Soldering
Programming
to program my board I use Arduino IDE which is an integrated development environment that is fully computable with Arduino boards but if you want to program another microcontroller you have to do some steps before beginning. the first step is to install the microcontroller, in our case the microcontroller is attiny44, to do so go to file>>preferences>> then pest the below link to additional board manager URLs then click on the yellow-colored icon then press ok
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
now go to tools>>board>>boards manager, search for attiny then click install.
after looking at the Arduino UNO pinout I connect the Arduino UNO to my board as follow:
Arduin pin | attiny44 |
---|---|
10 | Reset(4) |
11 | MOSI (7) |
12 | MISO (8) |
13 | SCK(9) |
5V | VCC |
GND | GND |
now we are ready to program the board, but we have to define pin numbers in the code so take a look at attiny44 pinout .
I write a simple blink code based on my design and attiny44 pinout .
int led=3;
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(led, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
after we write the code its time to upload it . first of all, we have to make Arduino ready to program another microcontroller by uploading the "ArduinoISP" from the examples . make sure that you chose Arduino UNO ( or the Arduino board that you have) then click on the arrow to upload the code
now let's go back to our code to upload it setup connection on Arduino IDE then go to skethc>>upload using programer
finally!! it works
files to download
Google Drive
direct link