Home About Me Final Project Fab Academy 2019 Berytech Fab Lab

Week 7: Electronics Design

During the seven session dated on Wednesday February 27 2019, I learned how to design a Printed Circuit Board "PCB", and how to test the operations of a Microcontroller.

    I was introduced to:
  1. Voltage,
  2. Capacitor,
  3. Current,
  4. Resistor,
  5. Ohm's law and Power,
  6. Series and parallel circuits,
  7. Oscillators,
  8. Diode,
  9. LED,
  10. Transistor,
  11. Voltage Regulators,
  12. Microcontroller,
  13. MCU networks,
  14. ADC & PWM,
  15. Data Sheets,
  16. "Easily Applicable Graphical Layout Editor" "Eagle" .

The group assignment is to use the test equipment in our lab to observe the operation of a microcontroller circuit board.
The individual project is to: Redraw the echo hello-world board, by adding a button and a LED. Check the design rules, make it, and test it.


Individual Project: Redraw the echo hello-world board:

The new board functionality:
Based on the original "hello-world" board shown below, I designed the new "hello-world" board by adding a Red LED and a push button. I connected the Red LED to the output pin 6 (PA7) and the push button to the input pin 10 (PA3) so that whenever we press the reset push button, the Red LED will turn On.

The original "echo hello-world" board:

    Below is the list of the Original hello-world components:
  1. ATtiny44 x 1,
  2. Resonator 20Mhz x 1,
  3. Resistor 10K x 1,
  4. Capacitor 10uf x 1,
  5. ISP header x 1,
  6. FTDI header x1.

The components:

  1. ATiny44A x 1,
  2. Capacitor 1 microF x 1,
  3. Capacitor 10 picoF x 2,
  4. Resistor 10 KOhms x 2,
  5. Resistor 100 Ohms x 1,
  6. FTDI Pin Headers x 1,
  7. ISP Pin Headers x 1,
  8. Crystal 20 MHz x 1,
  9. Push Button x 1,
  10. Red LED x 1

Eagle Schematic (.sch):

First of all, I opened a new file then inserted the fablab academy library in it and started to add components: like resistors, capacitors, etc...



We should always connect a capacitor of 1 microF in parallel to the power supply. According to the Red LED specifications, I must use a Resistor in series having a value of = (5V - 2.4V)/0.03 A = 86.6 Ohm, so I will use the available 100 Ohm resistor. I checked the Red LED polarity and I solder it accordingly.

For the case of the 20 MHz Crystal as per the requirements of its data sheet we must have two capacitors of 10 picoF(to replace the 8picoF) in parallel to it and connected to the ground from their middle connecting point. For the push button we must have the standard 10KOhms resistor in series with it.

During designing my Schematic, I used rotate, move, cut, value, name, label, Net, and many others functions to have the final below schematic.

I used the function "Switch to board" to have the draft layout of the PCB.

Then I adjusted the design rules before routing. For that purpose, I openned "Design rules" from the toolbar, Edit, Design rules:

I adjusted the Clearance to 16mil:

I adjusted the Distance to 16mil:

I adjusted the Size to 16mil:

I used rotate, move, value, name, label, and specifically route and many other functions to reconnect, finalize and simplify the connections and have the below final layout. I also checked and repaired the errors by using tools/errors function.

Eagle Board Layout (.brd) for the actual board that I will mill


Manufacturing the PCB

In order to start the milling and drilling process, I used the GIMP "GNU Image Manipulation Program" software.



Then i used the "fab modules" online Software to create the toolphath and generate the code.

For the milling process I used:


For the drilling process I used:

For the Contour Cutting process I used:

As a result i geenrated the final toolpaths: Outer frame, drills and internal path


Manufacturing and Soldering the PCB

To zeroing the level of the tool, I used the miltimeter to have a precise zeroing because the board copper is very thin. I moved down the tool by commending the -Z down to minimum increment to hear the bepper of the multimeter.

Before starting the soldering of the components I tested the continuity of the wiring between the different pins.

Testing my PCB:

Wiring Arduino Hello Board:

Arduino Setup:

I installed ATtiny44 board on the Arduino IDE. I inserted this link: "https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json" in the additional board URL then tools boards manager.


After that I installed ATtiny program, go to tools set the board "ATtiny24/44/84", the processor to "ATtiny44", the clock to "External 20 Mhz", "Arduino as ISP".





After doing the "burn bootloader" step. I selected "Examples", "ArduinoISP", "ArduinoISP" to inform the Arduino that it will be used as "Programmer".


Test the operations of my "Hello Board":


According to the Arduino program, when I press the "Reset Button", the "LED" will turn "On".


Group assignment: use the test equipment in our lab to observe the operation of a microcontroller circuit board.

  1. Input Voltage:

  2. We connected the Positive Probe of the Tektronix TBS1052B to the Vcc of the board and the Negative Probe to the Gnd of the board and we visualized the 5v signal on the screen.

  3. Testing the Sck Pin:
  4. Now we connected the Positive Probe to the SCK Pin on the Board, and we visualized the signal during the process of uploading the code.

  5. Testing On/Off LED:
  6. Now we connected the Positive Probe to the LED on the board and we visualized the signal while pushing the switch button on and off: the code used is a simple push switch button code.

  7. Test the Blinking LED:
  8. Now we connected the Positive Probe to the LED on the board and we visualized the signal while the LED is blinking: the code used is a simple blink code.

Download files:

The Schematic in Eagle,
The Board in Eagle,
The Internal Path,
The drills,
The External Path,
The Arduino Code to turn on the Red LED,
External path in png,
Internal path in png,
Holes path in png.

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.