8. Electronics Design¶
2020 documentation¶
Introduction¶
Week 4 marked my first practical experience working with circuits. I had never soldered or created a circuit myself before. Throughout this assignment, I became familiar with electronic terminology and understood the functions of components like resistors, diodes, and capacitors. I’m grateful to my instructor for their patience.
Experience¶
Software Installation and Selection¶
I started by installing design software. Initially, I chose Eagle due to my preference for Autodesk products. However, after several hours of working in Eagle and watching tutorials, I decided to switch to KiCad. Surprisingly, this open-source program was user-friendly and efficient. Within two hours and with the help of short tutorials, I became familiar with KiCad. Given my limited background knowledge, I followed my instructor’s documentation step by step.
Circuit Design¶
For the assignment, I chose the ATtiny44 microcontroller. To complete the circuit, I included two resistors, one capacitor, an LED diode, and a button. One feature I appreciated in KiCad was the ability to choose any resistor or capacitor and modify its parameters directly within the schematic.
PCB Design¶
Designing the PCB and connecting the components posed a significant challenge. After completing the schematic, I moved on to the PCB layout.
Machining the PCB¶
For the machining process, I used Fab Modules as my CAM software. I Exported the SVG file and uploaded it to Fab Modules. After a few simple steps, the g-code was ready. I then imported the g-code into the Roland software to start machining the traces. This part was straightforward. However, I encountered a problem with cutting the PCB contour. The g-code for the PCB contour had the same origin point as the trace cutting g-code, causing two edges of the contour to overlap with the board. To resolve this, I set a new zero point using G55, adjusting the origin point by -2.5mm on the Y-axis and 2.5mm on the X-axis. After testing this adjustment in the air to ensure accuracy, I proceeded with cutting. Finally, I had the machined PCB ready for soldering.
Soldering¶
During soldering, I found some traces were too small, making it difficult to solder the IC cleanly and achieve a neat appearance. Despite this, I managed to solder the components.
Programming the Board¶
After soldering, I programmed the board with the following code:
// ASHOT MARGARYAN
const int led = 2;
const int button = 7;
void setup() {
pinMode(button, INPUT);
pinMode(led, OUTPUT);
}
void loop(){
if (digitalRead(button)){ // if button is pressed
digitalWrite(led, HIGH);} // turn the led on
else { //if button is NOT pressed
digitalWrite(2, LOW);} // turn the led off
}
Conclusion¶
This week pushed me out of my comfort zone and into new territory, working with electronics. I realized the importance of preparation for future electronics-related assignments. This experience has been valuable in building my confidence and skills in this area.
Unfortunately, I couldn’t find a video or more photos of my 2020 board. As I remember, it was a working, programmable board, but I haven’t seen it since 2020.
2024 documentation¶
Introduction¶
For 2024, the most common chip that was used among students in our lab was the ATtiny1614, so I went ahead with it. From my previous experience in Fab Academy, I know that it is possible to design a board that can be useful for all other electronics-related weeks during Fab Academy. During my research on how to make the desired board using the ATtiny1614, I found Adrián Torres’s documentation.
Designing the board¶
As usual the process started from designing the board. I had installed kicad on my notebook since 2020 so I just updated it, next step was importing fab components library to my kicad.
adding components , first i added ATtiny1614 and continue drawing board scematic around it.
With some components i had to improve the footprint.
here is the schematich of the board
After finishing the schematic, the next step was to make the traces. From 2020, I remember that I hate this process, so after spending one hour without success, I started searching for an easier way to do it. First, I tried to get someone else in the lab to do it instead of me, but it turned out that at 1 AM, no one was interested. After a few minutes of research, I discovered that KiCad has a built-in add-on for making traces. To find that add-on go to plug in and content manager find the Freerouting Kicad integration and install it. Also from the same menu I installed another plug in which is called round tracks. This add-on makes traces smoother without sharp corners. I will use it for further board design.
To use the add-on in the PCB editor workspace, go to Tools, then External Plugins, and there you can find the newly installed plugins. Then start it. It will provide a solution in a few seconds. The given variations can also contain more than one layer (blue lines are for the second layer), so we can say that it doesn’t give the best variation, but in my case, it brought me closer to a solution. Actually, I had to make some size changes on some footprints and use a jumper for one trace to make the design possible.
here is the last variaton. It was posible to cut it like this, make it simple rectangle but our instructor Babken push me to do better so with his help and sugestion the board become a volkswagen beetle. We shaped it to match the VW Beetle design.
After moving parts of pcb to make it look like car I run the round tracks plug in and got smoother design.
Also, it was interesting to push the design of the board further and make it double-sided. On the second side, we just do an engraving of the car. That work will be done in Inkscape. Here are some screenshots of making the SVG file suitable for FabMods.
To engrave on two sides of the PCB, we have to do two setups for machining. With the help of our great instructor Babken, we came up with a great solution. On one piece of PCB, we machined both sides of the board traces and then switched them in place and started the same G-code. So, with one G-code, we are going to have double-sided boards.
Machining¶
Next step is to export svg files and open fab mods upload svg files make the gcode for roland
What I’m going to do is make a double-sided PCB using one leftover as a pattern to flip and swap two boards. For milling, I’m using a 1/32 end mill for cut-outs and a 1/64 end mill for traces.
The first step was just milling the board as usual with the generated G-code.
The second step is to cut out two boards.
Now I have two pieces of FR1. The first one has the engraving of the car, and the second one has the board.
I then removed the old tape from the first setup and put new tape on the newly milled sides, hoping that it will not damage the traces.
Then I put them in the opposite places and started the same program. After it repeated, we can remove the table of the Roland and take the boards off. So, we got two boards with one traces G-code and one cut-out.
Soldering and testing¶
So now we are done with milling folowing part will be soldering the board. To do that I have to find needed components. Actualy in my designe there are some components thet are not matching with Adrean’s original design. For example I used 3.3 volt regulator instead of 5V.
Here is the first board that we soldered. At that point it seems to be okay
Group Assignment¶
As part of the group assignment, we also checked the PWM signal with an oscilloscope. On the board Elen developed this week, there’s an LED connected to pin number 0, which has PWM capability. We wrote code that changes the value from 0 to 255 in each loop cycle and resets to 0 when it reaches 255. This value controls the LED’s brightness. Here’s the code we wrote:
#define pin2 0
int value = 1;
void setup() {
pinMode(pin2, OUTPUT);
}
void loop() {
analogWrite(pin2, value);
delay(20);
value++;
if(value >= 255) value = 0;
}
As a result, we observed that the LED lights up very dimly and gradually becomes brighter and brighter until it reaches its maximum brightness. Then it dims instantly, and the cycle starts over.
We then connected this PIN to the oscilloscope:
And saw the following result:
Conclusion¶
In conclusion, I want to thank my instructors Babken, Rudolf, and Mkhitar. They helped me with every aspect of this week. Reflecting on my 2020 experience, it would be difficult to remember everything, but a bit about 2024: my electronic design skills were not good four years ago, and they haven’t changed much since. So, it was a challenge for me. I’m glad I found Adrián’s documentation; it helped me a lot. Without it, I couldn’t have achieved such a result. I hope to become more skilled in electronics in the near future.