This week we focus on electronics design, to understand a bit more about the choice and function of some of the basic components. And to have practice drawing up circuit diagrams and PCB layouts. Working through the design process of making and testing functioning circuit boards.
We will be redrawing the 'Echo Hello_World' circuit board. Based around the ATtiny 44 micro-controller. It has a 2x3 IDC header for programming and a 1x6 SIL header for communicating with another computer over a serial link. We will be using use an FTDI USB-to-TTL serial device for communications.
The remaining pins on the ATTiny44 can be used to interface with other peripherals. For this assignment, we are going to make use of 2 of these in/out pins and connect in a pushbutton switch and also an LED (with it's current limiting resistor).
It seemed the sensible choice to use Autodesk 'Eagle' design program for the schematic circuit diagram and board layout. This is essentially a free software option untill you start designing bigger more complex commercial boards with large footprint and file output. I already have other Autodesk products which I use and like, and we would be receiving forthcoming tutorials in using this software so time to get to grips with using it properly. So I dowloaded Eagle and then read up a quick tutorial about the basic interface and basic use.
I have also read about other EDA - electronic development applications for designing and generating a board such as this, but havent yet had sufficient time to try them out... These programs inlude offerings such as:
With Eagle you can also utilise 'PCB G-Code' to generate and output g-code file directly to interface with most generic milling machines. Although as I was familiar with the convenience and settings that we used before making the Fab-ISP with our Roland SRM-20 Milling machines. I would stick to using 'fabmodules' online processing environment to generate the tooling cut-paths and gcode for communication with the mill for the final production of this board.
First up we needed to dwonload and add the fab library of components - 'fab.lbr' files giving us access to the correct component libraries that we needed to ensure that component pad dimensions remained consistent with the actual components we will be using on our board. - I did encounter a little difficulty finding the correct and current library files to start with, and then some confusion following the many previous tutorials on this weeks assignment as there are several different versions of this board, some possibly now quite outdated and incompatible. This only meant there was lots of information to sift through to find out exactly what was expected and how to best achieve our goals this week.
Eventually I successfully got the libraries uploaded correctly into Eagle and I began to add my components into a schematic for my new Hello_World board design.
In Eagle you are basically using a central control panel to manage your project folders. This creates a folder with a schematic window (white) and a board window (black), both the windows need to remain open whilst you work on your project to maintain the interface and workflow between them. Within the Schematic window we can add components from our libraries and then make connections between components to produce a circuit diagram for your project. You can add annotation, position orientate and assign values to all the components in the design. The green net wires, are traces to add to all the connection points and route your circuit. Either these can be labeled or physically drawn and connected to their appropriate counterpart, VCC, GND, and the pins on the microcontroller. It is a good idea to check the correct pin output and inputs along the way by referencing data sheets for your components - which show all relevant specification and details to figure out where connections should go according to your design needs.
Moving to the Board layout, the components you have added initally appear jumbled in the bottom left corner of the window for you to then place into the board outline and make your design. The idea is then to flip between your schematic and board layout as needed as you start to arrange and position your pads and traces. The rats nest helps with initial placement and orientation of components. The next step is to lay the traces to wire everything up correctly and efficiently. (it is important that they connect correctly at the nodes and not to leave any hidden defects behind that could later cause problems). The auto-router function can help by generating and suggestions for the best route with shortest connections between components.
I found in the board layout window it didnt respond very fluidly to commands given and it wasn't as intuitive to use as I had hoped it might be. I was trying to make my board design as compact as possible. However, I found it was quite difficult to get all my paths to route up and connect correctly, and to give the O.K.-Pass, for my layout. Even though my circuit looked accurate when referencing some of the circuit variations I was following online. This caused me a good deal of frustration as I had tried re-laying everything several times getting the same result. I finally realised that I had mislablled some of the connections in the schematic mode and hadn't quite been careful enough. I had misspelled some of my legs RST, RTS. After double checking going over all my connetions and a little shifting around of components and traces to get a better fit, I finally managed to get the all clear from the design rules check 'drc' command. We were all cutting our traces with a standard lab 1/64" milling bit then 1/32" to cut out the border. We were strongly advised to use a 16mil clearance on all distances between tracks and pads. I found it very tight routing three trace paths in between the micro-controller chip legs without encountering clearance issues, but in the end they did indeed fit!!
The next stage was to export the file from Eagle as a png. using a monochrome black and white file, I used 500dpi to give me sufficient detail on such a small board. Then I used photoshop in order to add a 20px black border on the outside of the board to accomodate for the mill bit when cutting it out. This outer border can be saved on a separate layer and then used to make the white outline border cut. Both images can then be imported into the web-based fabmodules system as .png files, settings are then made and configured for the milling output and cutting paths outputting the g-code to be cut on the Roland SRM-20 machines.
As before with our Fab-ISP boards that we fabricated. I found a suitable off-cut piece of PCB material. Cleaned out my machine and set the blank onto the cutting plate with double-sided tape to fix it down. I then zero'd in my origins for X,Y added the milling bit and set the Z axis, I double checked the settings and began milling.
Unfortunately after cleanly cutting the traces and then changing the bit, re-zeroing my 'z'-axis and cutting the outline. In my haste, I had neglected to change the bit size and depth settings in my output file from fabmodules. I needed to move from the 1/64" trace profile to 1/32" for the border. And so when it first completed cutting it hadn't cut through the material completely. Unfortunately I had already removed the work from the machine so I couldnt re-mill using the same origins. After consulting with my instructors if I could try a dremel cutting disc to cut the remaining outline and save having to mill it all again, I was suggested a more drastic aproach to use the guillotine. Unfortunatley this was far too rough a process and fractured a corner of my board. Resulting in me needing to re-mill the file again. The second time there were no issues and it came out all lovely and shiny, and ready for stuffing.
I picked and organised the components that I needed and taped and labelled them to a page in my book, so all that remained now was to begin stuffing my board with components. As with before, I quite enjoy the soldering process even though it can be a bit fiddly and tiresome. I managed to get all the components in place without too much hassle, and tested the continuity and traces to ground and +VCC, and it all seemed well. Fingers crossed when it comes to programming it and using the board I don't have any fails!