Ana Cabral

Week 6

Electronics Design

back to main page

The assignment

This week’s assignment was to redraw the echo hello-world board and add (at least) a button and LED (with current-limiting resistor). We were required to check the design rules, make it and test it.



KiCAD: board schematics

I have decided to explore KiCAD. It looked ok, I could find a lot of tutorials on youtube that looked good, and it’s always good to support open source software.

I downloaded it and followed the tutorials from Contextual Electronics, which I can definitely recommend!

So… to start on a new schematics, I pressed the first icon.

I then proceeded by importing the libraries of components from the lecture, fab.lib and fab.mod. To insert components, becomes useful to use the shortcut, press “a”. Then you can search and select from the library just imported.

When all components were in place, I started making the traces. To make the traces, you just need to click on the icon on the right hand side, and connect the pins.

When all components and tracks are placed (also the button and LED with resistor), I pressed “Run CvPcb to associate components and footprints” and then “Generate NET list”.

Some components, needed to be re-assigned manually.

I saved the schematics and closed the tab.



KiCAD: board layout

To proceed to the board layout, I went back to KiCAD main interface, and pressed the second icon “Pcb new - Printed circuit board editor”.

In the new tab, I pressed “Read NETlist” to import the NET file generated from the schematics. All component footprints were loaded, lying on top of each other. I then organise them, following Neil’s suggestion drawing, most of the times having the need to move them and rotate them. (tip for moving: hover the mouse over a component and press “m”, you can then move it)

I then placed tracks, by clicking on the icon on the right hand side menu. To finish a track, you need to double click.

They kind of looked too thin, so I went into the top menu, Design rules > Design rules, and changed them from 0.2mm to 0.4mm. And then, right click on one track, to select "Edit all tracks and Vias", so I could apply changes to all tracks at once.

While placing tracks, I also found it useful to change the grid.

Just to try it out, I decided to place some text as well - I had a tiny bit of space in the board layout.

When I was done, I needed to make the fill, make clear where the copper was staying, and where it would be machined “away”.

All that was left to do, was to perform design rules check and, if no alerts, export the file as an svg.



Getting ready for machining

I opened the svg file in Adobe Illustrator. I worked the svg so that all that needed to be machined would be black, and where I wanted the coper plate to remain white. I could see the tracks were made with strokes and stroke thickness (instead of fills, so I made sure the stroke thickness was 0.4mm). Exported 2 files as png, traces and outlines. Just like on week 4, traces would be machined with 1/64” bit and outlines with 1/32” bit. I exported the png with resolution on 1500 ppi. The files were now ready to be open in FabModules (link) and machinned.



FabModules and the Roland SRM-20

Finally, the 1/8” collet for the Roland SRM-20 arrived, so we used it this week. We used FabModules. Since we had already used it for the Modela MDX-15, we thought it would run smooth.. but we got an error when trying to send a job…

So we needed to add user to lp group. For that, we typed:

sudo adduser [username] lp

And then everything has been working more or less smooth (once in a while we had to restart the machine, between jobs). I had some troubles milling the traces, it wouldn’t remove the copper evenly. I changed the cut depth from 0.1mm to 0.2mm for a “quick fix”. Most probably, the sacrificial layer needs to be levelled. For that, I’ll mill the entire block that is used as sacrificial layer, when having good time (the sacrificial layer needed to have some height, so the bit could reach it; in this case is 3cm thick).



Soldering, testing and debugging

Soldering went fine… OR so I thought until I tested the board. When programming the board, I used the usbtiny developed on week 4 as programmer. I followed the steps on the tutorial. All went as expected until the final step, where there would always be an error and no reply from the microcontroller.

So Bas (my instructor) told me it was time to learn about the oscilloscope. I started by watching a tutorial and reading about it here. After, remotely, Bas guided me through a series of different debugging tests - not only to debug, but so that I would get familiar and learn how to use the oscilloscope. So, we tested…

We inspected a bit closer... Turned out the problem was more obvious than all this… there was a short circuit. All 1x6 header pins were “sitting” on a vcc track. To solve it, I unsoldered the header using the heatgun, removed the soldering using braid, and re-soldered the header, in another position, making sure there was no shorts. Ran the python command again, and it worked right away! HURRAY! :)



Working towards the final project

I would really like to start working on soft circuits, using conductive ink or conductive thread on fabric. But I can see my knowledge in electronics design is limited and this weeks assignment took longer than expected. I hope I start feeling more and more familiar with electronics design and production, and in one of the following weeks manage to finish the mandatory assignment in extra good time, so I can start exploring soft circuits design.



All files (board schematics, board layout, exported svg and png's for machinning) can be found here.