Electronics Design

For this weeks asignment I modified the hellow world PCB with a mix of red, green and blue LED lights using Autodesk EagleCAD, a program i had never used before.

First I added the library to Eagle, and then proceeded to build the Hello World PCB as per the turoial

Next I took this schematic into the board Layout, and started to connect elements by hand with a thickness of 20px. Although the traces were thick enought some traces were worringly close together. With a bit of searching found a useful link to the fablab_17mils.dru file; this file input offsets and line thickness calibrated for the fablab milling machine - very valuable.

I then added three LED lights, and a button using the net functionality in EagleCAD. This saved having to draw long wires, and kept the workspace minimal

With the new LEDs in position, I fired the autoroute tool. This seemed to work ok, but left one component (SCK from the header pin) in need of manual routing to the Atting44 chip. To do this I added a 0 ohm jumper over two wires; this move required redrawing a few lines to make extra but ended up quite tidy.

Programming the board took the most time to set up. I chose to program it from Arduino useing the high low tech tutorial installed on my Windows 10 computer. This process didn't work at all, so I went back to my board for debugging. I tested every connection, but couldn't find any shorts. Calvin kindly offered to try and program from his Mac computer and this worked first time! Knowing that the board worked, I went back to find the problem with programming from Windows - Jonah showed me that I needed to install adafruit for windows to recognise the USBtiny ISP, and this plugin proved the missing key for me to program in Arduino on my laptop.

Debouncing. I was intrigued to learn about the bounce issue of buttons from Jonah: rather than making a clear on off signal, Pushbuttons often generate spurious open/close transitions when pressed, due to mechanical and physical issues. To counter this i first attempted using the millis() functionin arduino to keep tract of the time elapsed since the button was pressed, but I wasn't sure if this was compatible with the external clock.

Daniel Marshall 2017.