Greetings, here lies my work-log at

______ _ ___ _ _____ _____ __ ______ | ___| | | / _ \ | | / __ \| _ |/ | |___ / | |_ __ _| |__ / /_\ \ ___ __ _ __| | ___ _ __ ___ _ _ `' / /'| |/' |`| | / / | _/ _` | '_ \| _ |/ __/ _` |/ _` |/ _ \ '_ ` _ \| | | | / / | /| | | | / / | || (_| | |_) | | | | (_| (_| | (_| | __/ | | | | | |_| | ./ /___\ |_/ /_| |_./ / \_| \__,_|_.__/\_| |_/\___\__,_|\__,_|\___|_| |_| |_|\__, | \_____/ \___/ \___/\_/ |_|


electronics design



index



Assignment goals


KiCAD v4 - Intro and resources

I chose to learn KiCAD first as it is open-source and the learning documentaion resources seemed to be easy to follow . The documentation I followed - Getting Started with KiCAD

I was aware that KiCAD is bunch of programs unlike Eagle which has an integrated workflow, but KiCAD does a good job of organising files project wise which makes up for the fragmentation of the workflow in my opinion, the flowchart above which is from the official documentation does a good job of explaining the workflow involved in KiCAD







The first step is to create a project folder with a 'Create a new project' option, notice the file tree on the left, that can act as the project browser for switching between your schematic and PCB layout drawings and the Netlist
Click 'Yes' for the above warning, it'll create a new directory for your project

Schematic drawing

The first sub-program to use in KiCAD whilst doing a typical PCB design is the eeschema which is the first icon in the top toolbar



Eeschema opens with a 'page layout' meant to be printed out and thus will accept parameters like page-size and title-block details



Those parameters can be accessed through the page-settings icon on the top



Here you can set the page-size, orientation and title-block fields like other CAD programs



Components can be added by invoking the 'add component' tool which has the keyboard shortcut - 'a', I started by looking up the attiny 44 variant we had in our inventory, click anywhere on the paperspace after selecting thee component to place it.



I continued by Adding the other components required for the hello-echo-board and all these components were present in KiCAD's library of components



The AVR-ISP i added from KICAD's library did not have an associated footprint, which I come to know later and use the AVR-ISP given in the Fab-library found in the class notes page



After all the components have been placed, hover over a component and press 'v' to edit the value of the component; like in this instance I've added the value of the resistor as 10k ohms



The next step is to auto-annotate all the components, where KiCad will assign names to components like R1, R2 to each component (R stands for resistors in this case)



I chose all the default settings and pressed annotate, notice that in this window you can also clear out all previous annotations.



Now, all the components are annotated i.e named



I got a little ahead of myself and routed all the wires in the sschematic like how one would route it in the PCB layout, but later learned about the 'global label' feature of schematics and redraw the connections



Here is the redrawn schematic, labels make the schematic much more easier to read



After doing the schematic the workflow suggests one to do a electrical rule check, the rule check tool is located in the top bar and has a bug icon.



I googled the first warning I got about pins not being driven and learnt that power-flags need to be added to the schematic to tell KiCAD that power is coming from somewhere and KiCAD need not bother



Another error still remained where the wire wasn't properly connected to the terminal of the resonator, when i redrew that line, the error resolved



Click on the 'NET' icon to generate the NET list, the NETlist will be read by the PCB layout software



The old method of assigning footprints to components is throught the cvpcb tool found in the toolbar again



The footprint of the AVR-ISP was in an old legacy format and it failed to convert it to the new format



AS mentioned above, AVR-ISP is now without a footprint, now I decided to add the fab library to use the footprint provided there



THis is the CvPcb interface where you can relate components to footprints from their respective databases



It's important to know that to finalize the assignment one has to double click on the footprint from the table on the right, this part is a little less unintutive



Adding the fab library of components and footprints to KiCAD




Open the libraries manager from Preferences > Library manager



Browse for the fab.lib, available from the class notes page



Similarly add the .mod file for the database of footprints provided in the class notes



IN the CvPcb a footprint can be previewed



To draw and add a new footprint

Start by creating a new library of footprints to save your newly about to be created footprint in, because one can't add footprints to KiCad's default library



Next step is to select the newly created library as the 'active library'
Set the footprint details with 'new footprint' such as 'SMD' and labels



In the layers tab, as of now, I understand that traces can only be drawn on 'Cu'(copper) layers and the board geometry can be drawn in the 'Edge.cuts' layer



The text you assigned will appear in the PCB layout in the 'Silk.screen' layer



Next step was to measure the component so as to draw appropriate pads for it



With 'add a pad' , you can set the geometry of the pad and place it on the drawing space with the help of the grid



Similarly, I added the 2 remaining pads and the outliine of the component itself



After saving the footprint, i returned to eeschema (the schematic editor) and hovered over the component and pressed 'f', this brings up dialog where you can assign the footprint, using cvpcb to assign footprints is the old method, this is the new suggested method



The new method has a built-in preview and a simpler set of tables to choose the footprint from



I next replaced all the footprint assignments to footprints from the Fab library with the new 'f' method



I opened cvpcb, just to check all the assigned footprints at a single glance. I guess the old method still has it's uses



Now, to commence the PCB design program, go back to KiCAD's main window and open 'Run PCB design' and choose the 'read netlist ' tool

PCBnew




the program will create components from the Netlist



Hover over each component and press 'g' to drag them and space it apart



Next I changed the layer to 'edge cuts' to draw the boundary of the board



the components are now linked to each other with lines which are called a rat's nest lines which are a visual guide to see connections to be routed



~ 'Layers setup' dialog seems to be the window for setting layer settings



~ 'Track widths' and clearances can be setup in 'Design rules editor' . The 1/64th bit determines the minimum clearance required. 0.35 is the least clearance I've been succesfu with so far



~ At this point, I've redrawn the hello-echo board without the LED and the button, to go back to the schematic and update the design a workflow called 'Backward annotation' is used as shown in the flowchart above



~ Manual routing for smaller boards is strangely joyful; like solving a puzzle



~ The redrawing of the hello.echo board is complete, I did take some cues from Neil's board to determine component placements



~ Now, to add the button and it's pull-down resistor back in the schematic.



~ Next, I've added the LED and it's pull-down resistor



~ Now, after saving the netlist again, if I update the netlist in the PCB drawing software, the new components show up at the bottom with their respective ratsnests



~Routing them in



~ KiCAD, does not seem to have a PNG exporting option, so the workflow I followed is Export SVG > Import in GIMP at 1000 dpi > Export as PNG



~ GIMP is quite robust and SVG to PNG is a piece of cake

Milling and stuffing




On Milling The workflow was as folows
Export SVGs from KiCAD >
Convert them to PNG in Inkscape >
IMport PNGs in FabModules >
Mill the board in Roland Modela mx-20. The workflow was exactly like in week 4.

~ milling out the board has the same workflow as I followed in week 4



ON Stuffing and soldering the workflow in stuffing and soldering is as follows
Setup Electronics workbench - SOlder station, tweezers, desolder braid and flux >
Ensure safety measures are undertaken - be aware of the solder gun tip >
Gather components >
Start stuffing

Hero-shot of the stuffed board

Programming




~ Programming the board with a FabISP, programmed Neil's example hello.echo code


~configuring with 'make'



~ initialization failed the first time as the orientation of the ISP header cable was not correct




~make fuses went through



~ make hex compiled the code



~ mmake program wrote the flash memory of the attiny44 seemingly successfully, but when I tried to use term.py to monitor serial communications, the attiny did not speak back :( . A problem to debug during embedded programming week. This week is done for now.



Other versions of the Hello.echo board i milleed, the last one is what I ended up using for week 8

ver 2, ver3 and final version



File Downloads