Greetings, here lies my work-log at

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

electronics design


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


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 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 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