assignments

Week 8: electronic designing☀

This week is going to be one of the more scary weeks. This is the week in which we will be making the very first version of my final project board! To get to the point this week is about elctronice designing. We would have to design our final project board and print it. This week is going to be really fun so lets get right into it!😀

Neil's lecture😋

After the random reviews were finished, we started with our lesson for the week. It was really fun while professor Neil talk about all that is needed for elctronic designing. He also talk on different editing softwares that we could use to design our boards.

Assignments

During the Week of Electronics Design in the Fab Academy program, the group assignment focuses on utilizing the skills and knowledge acquired in electronics design to collaboratively create functional circuit boards. Students are tasked with working together to design and fabricate their final project circuits or systems. Through the use of tools like multimeters and oscilloscopes, the group is required to thoroughly check their circuit boards for proper functionality.

Electronic designs🧐!

Now lets get into this weeks assignments and start this week up! To begin lets start off with designing our final project board in a schmatic editor😤.
The editor that I will be using is Kicad .
KiCad is an open-source Electronic Design Automation (EDA) suite that provides tools for schematic capture, PCB layout, circuit simulation, 3D rendering, and more. It is widely used by hobbyists, students, and professionals for designing electronic circuits and printed circuit boards.
Kicad Provides a lot different features that is really useful for electronic designing. But the main features I will be using is the schematic editor(To create circuits) and PCB editor (To design printed circuit boards)
This is a simple tutorial to install kicad on your device.
Now Lets start with the creation of our circuit with the schmatic editor! Though before we start using it we have to install the fab libary of both footprints and symbols. Lets get right into😜.
Firstly we have to install the fab libary. This is the documentation through which I was able to install the fab libary -->Here
  1. I first had to download the source code of the git repository. After that I extrated it somewhere save for me to access it later.
    alt text
  2. I now have to open up the symbol libary and the footprint libary in Kicad and then go to preferences and go to either Manage symbol or Manage footprints. After that you press the symbol that looks like a file and upload the file that you downlaoded.
    alt text
  3. After that you can just open up your schmatic designing and enjoy your full fab libary☕.

    Designing🤠!

    Now lets get into designing our final project board! Though lets first get into all the different features that kicad has to offer!
    alt text
    This is the tutorial through which I learned how to design in the kiacd schematic design.
Now lets get into all the components that I need to create the my final project board😀! The components I added to my skematic for my circuit board were.
  1. ✓ a conn 01x06 pin
  2. ✓ a conn 01x04 pin
  3. ✓ a conn 01x03 pin
  4. ✓ a power led
  5. ✓ a programmable led
  6. ✓ some extra 0 ohm resistors.
    Wow, that was a lot of extras 🥲. Still then each and every one of the extra components added are to do a specific task. Both the power and programmable led are for assurance for whether the board works or not. While the pin are mainly to control sensors! I made this board with my final project in mind, cause of that each of the conn pin header is relative to a sensor from my final project.
  7. 1x6 pin header - This is for the NPK sensor which requires 6! pins, (Thats a lot 🤯)
  8. 1x4 pin header - This is component is for the I2C LCD which has four pins.(Thats a bit easier🥲)
  9. 1x3 pin header - Lastly this is for the comparative soil moisture sensor(This is the easiest😋)
    Ahh... almost frogot, the micro controller that I used for this week was the attiny 3216 micro controller. I used the fab academy; embedded programming page to find my self a bit of an idea on how the board should come out.
    alt text alt text
    This is how my finished schmatic looks like.
    alt text
    Now lets start with the PCB editor!

    PCB creation 💀

(Ohh lord, please have mercy on my soul).
So before we get into editing our PCB, We have to convert our schematic design to our PCB editor. To do that we have to go to "tools" and then "Update PCB editor form schematic".

alt text

Now lets begin!!!

This is my very first attempt, and.... it did not work out the way i envisioned.

alt text

Ohh... When I realised I couldn't, in any way get the last wire out of its place. My heart just sunk and it felt as if I had aged a thousand years!😭.
I had to get this done so I didnt give and continued onwards! After what seemed like an eternity, I finally finished with the PCB editing. Thank lord!!

alt text

Converting to RML file!

With the hardships behind us, lets get into creating the RML file. This how the code looks!

alt text

This is how the RML file looks for both the edge and the traces

Traces

alt text

Interior

alt text.

Milling😰

OHH... Great Buddha, Great God and Great Monks. Please have mercy on this little boys soul as he ventures far beyound his comfort zone!
This is always the scary part for anyone creating a PCB. The countless ways in which things could get messed up and you ending up with a broken mill bit!
With all the necessary steps taken into place and more a half of my life wasted on this. This is how the milling went.
After close inspection of the board I noticed that the milling machine didnt cut the board properly as not all of the copper plate was milled by the machine. I almost fainted when I noticed that and was scared for my life😰!!

alt text

Later when my instructor,Anith Sir arrived. He suspected that the copper plate and the scarificial bed werent stuck properly which cause the problem. Additionally he also mentioned that the board might still work as the point of the board that didnt cut properly wasn't colliding and interupting with the rest of the board. Sir suggested that I would have to make sure that isn't interupting with the rest of the design by the use of the multimeter💀!

using the multimeter, I set it measure continuity. What this mode of the multimeter it checks wether the to points you connect to the to wires of the multimeter are connected or not. With the mode set I connect the to point of the micro controller. I connected one point to the mis-connected ground and then connected the other to all points of my board.
After a scary process of checking using the multimeter, IT WORKED!

Programming😃!

Now to program my attiny 3216 micro controller I have to use a updi (Unified Programming and Debugging Interface) prgrammer. To make the programmer I used the documentation by the user name of ElTangas. This documnetation included the program code to turn an arduino uno board into an updi programmer and all the steps needed to take to turn an arduino into an updi programmer!
Firstly I had to install the git repository of ElTangas and then after installing the repo, inside the source folder there is an empty arduino ide file which you have to open and upload into your arduino. This will turn your arduino board into an updi programmer🥰!

alt text alt text

alt text

But there is one last step before you are able to upload your code. You now have to select the correct board for programming. The board I chose is the attiny 3216. To get my board I first inserted the libary url to my perferences.

[http://drazzy.com/package_drazzy.com_index.json] alt text

After that I had to go to board manager and then I had to install the megatiny core board libary.

alt text

Then after that I had to select the correct tools such as the boards, chip and programmer.

alt text

Now you can finally start uploading and programming your board.
This is the code I used in the above video

  // the setup function runs once when you press reset or power the board
  void setup() {
    // initialize digital pin LED_BUILTIN as an output.
    pinMode(3, OUTPUT);
  }
  
  // the loop function runs over and over again forever
  void loop() {
    digitalWrite(3, HIGH);   // turn the LED on (HIGH is the voltage level)
    delay(1000);                       // wait for a second
    digitalWrite(3, LOW);    // turn the LED off by making the voltage LOW
    delay(1000);                       // wait for a second
  }
  
This is the simplest code I could come up with. Also it is a very accurate way to dictate whether the board is working as wanted or not.
A simple code that first identifies the pin on which the LED is connected to and then makes it blink on a period of 1 second.

Files

SVG
Kicad File