Skip to content
Snippets Groups Projects
Electronics Design.md 4.24 KiB
Newer Older
Mitalee Parikh's avatar
Mitalee Parikh committed
#Electronics design
---
This week is about learning how to design a PCB.
Mitalee Parikh's avatar
Mitalee Parikh committed

#### Designing

Mitalee Parikh's avatar
Mitalee Parikh committed
I chose a hello.echo board based on ATtiny44 as it has the most available documentation.
Mitalee Parikh's avatar
Mitalee Parikh committed

Mitalee Parikh's avatar
Mitalee Parikh committed
Here is what the actual board looks like  
Mitalee Parikh's avatar
Mitalee Parikh committed

Mitalee Parikh's avatar
Mitalee Parikh committed
![](http://academy.cba.mit.edu/classes/embedded_programming/hello.ftdi.44.png)  
Mitalee Parikh's avatar
Mitalee Parikh committed

Mitalee Parikh's avatar
Mitalee Parikh committed
To add an LED and a switch, I started by making a list of the components required:  
Mitalee Parikh's avatar
Mitalee Parikh committed

Components list:  
1x ATtiny44 microcontroller  
1x 1uF Capacitor  
1x header 2x3  
1x FTDI connector  
1x 10k ohm resistor  
1x 20MHz resonator  

Added components:  
1x LED  
1x 1kΩ Resistor  
1x switch  
1x 1kΩ Resistor  

[Data sheet for ATtiny44](http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7701_Automotive-Microcontrollers-ATtiny24-44-84_Datasheet.pdf)

Pinout for Attiny44

Mitalee Parikh's avatar
Mitalee Parikh committed
![](./images/ed/pinout44.jpg)  
Mitalee Parikh's avatar
Mitalee Parikh committed

#### Creating the schematic

Mitalee Parikh's avatar
Mitalee Parikh committed
I used [KiCad 5.1.6](https://kicad-pcb.org/) to design my PCB. KiCad is an open source software suite for Electronic Design Automation (EDA). The program helps create a Schematic in sub-application called Eeschema, and then design the PCB Layout with Gerber output (this is what you send to a manufacturere) in the sub-application called PCBnew.
Mitalee Parikh's avatar
Mitalee Parikh committed

#### Update libraries

Mitalee Parikh's avatar
Mitalee Parikh committed
First step was to import all of the symbol and footprint libraries adapted for SMD components. These libraries can be found [here.](http://academany.fabcloud.io/fabacademy/2020/labs/barcelona/site/local/#material/extras/week06/assets/kicad_libraries.zip)  
Mitalee Parikh's avatar
Mitalee Parikh committed

Mitalee Parikh's avatar
Mitalee Parikh committed
![](./images/ed/libraries.jpg)  
Mitalee Parikh's avatar
Mitalee Parikh committed

#### Designing schematic

I placed the components listed above one by one, using the place component tool. Then changed properties like annotations and values, by hovering above the component and pressing E which opens the symbol properties window.

I also placed some tags using the tag tool - like GND and VCC, to make the schematic neat and clear.

Mitalee Parikh's avatar
Mitalee Parikh committed
![](./images/ed/schematic.jpg)  
Mitalee Parikh's avatar
Mitalee Parikh committed


Finally, I generated a Netlist by pressing the green netlist symbol on the toolbar.

Mitalee Parikh's avatar
Mitalee Parikh committed
![](./images/ed/generate-netlist.jpg)  
Mitalee Parikh's avatar
Mitalee Parikh committed


However I got an error saying that component R1 did not have footprints defined.

Mitalee Parikh's avatar
Mitalee Parikh committed
![](./images/ed/error.jpg)  
Mitalee Parikh's avatar
Mitalee Parikh committed


So I went back and assigned footprints to the missing part, by going to its properties again, and selecting the correct footprint from the newly installed libraries. And generated the netlist again.

Mitalee Parikh's avatar
Mitalee Parikh committed
![](./images/ed/addfootprint.jpg)  
Mitalee Parikh's avatar
Mitalee Parikh committed

Mitalee Parikh's avatar
Mitalee Parikh committed
![](./images/ed/assign.jpg)  
Mitalee Parikh's avatar
Mitalee Parikh committed


#### Drawing traces

Then I opened the KiCad pcbnew part, and found the netlist created and stacked of all components in the middle of the board.

Mitalee Parikh's avatar
Mitalee Parikh committed
![](./images/ed/ratsnest.jpg)  
Mitalee Parikh's avatar
Mitalee Parikh committed


I first editied the design rules in its menu and set the grid size.

Mitalee Parikh's avatar
Mitalee Parikh committed
![](./images/ed/designrules.jpg)  
Mitalee Parikh's avatar
Mitalee Parikh committed


The components all have an indicative line connection, so I used that to rearrange them and then added the traces, using the trace tool.


Mitalee Parikh's avatar
Mitalee Parikh committed
![](./images/ed/arranged.jpg)  
Mitalee Parikh's avatar
Mitalee Parikh committed


After connecting them all, I used the line tool to draw the outline like so.

Mitalee Parikh's avatar
Mitalee Parikh committed
![](./images/ed/drawoutline.jpg)  
Mitalee Parikh's avatar
Mitalee Parikh committed


Next I exported this as svg with these settings:

Mitalee Parikh's avatar
Mitalee Parikh committed
![](./images/ed/exportsvg.jpg)  
Mitalee Parikh's avatar
Mitalee Parikh committed


I opened the svg in Adobe Illustrator, made new layers for the traces and outline respectively.

Mitalee Parikh's avatar
Mitalee Parikh committed
![](./images/ed/ai.jpg)  
Mitalee Parikh's avatar
Mitalee Parikh committed


Then, after checking that the model is in mm, exported both layers separately at 150dpi in png.

Mitalee Parikh's avatar
Mitalee Parikh committed
![](./images/ed/exportpng.jpg)  
Mitalee Parikh's avatar
Mitalee Parikh committed


#### Creating Toolpaths

Mitalee Parikh's avatar
Mitalee Parikh committed
I followed the same process as [Electronics Production](./Electronics Production.md) week to make toolpaths, mill the board, solder components and test the board.
Mitalee Parikh's avatar
Mitalee Parikh committed

But this time I used [Mods](http://mods.cba.mit.edu/) instead of Fabmodules. Here's the process:

Mitalee Parikh's avatar
Mitalee Parikh committed
![](./images/ed/mods.gif)  
Mitalee Parikh's avatar
Mitalee Parikh committed


I could not fabricate this board because did not have access to a lab.

#### At the lab

So steps remaining for this week - mill the board, solder the components, test.

#### References

[Sparkfun KiCad beginners guide](https://learn.sparkfun.com/tutorials/beginners-guide-to-kicad/all)

#### Design Files

Mitalee Parikh's avatar
Mitalee Parikh committed
[KiCad Schematic](./images/ed/attiny44.sch.zip)  
[KiCad pcbnew](./images/ed/attiny44.kicad_pcb.zip)  
[SVG](./images/ed/attiny44-brd.svg)  
[AI](./images/ed/attiny44-brd.ai.zip)  
[traces.png](./images/ed/traces.png)  
[outlines.png](./images/ed/outlines.png)  
[traces - toolpath for srm20](./images/ed/traces.srm20.rml.zip)  
[outlines - toolpath for srm20](./images/ed/outlines.srm20.rml.zip)