Exercise 07: Electronics Design

Individual assignement:

Redraw the echo hello-world board, add (at least) a button and LED (with current-limiting resistor), check the design rules, make it, test it.

Learning outcomes:

Have you:

Redraw the echo hello-world board, add (at least) a button and LED (with current-limiting resistor) check the design rules, make it, and test it


Here the steps:

Presentation of the echo hello-world board
I clicked on the echo hello-world board link to understand the shape, the components, the traces and outline. Then I followed the Fab Academy tutorial WEEK 6: ELECTRONICS DESIGN for the description of the hello.ftdi.44.
Redrawing of the echo hello-world board with Eagle

I redrew the echo hello-world board, adding a button, a pull-up resistor, and a red LED with a resistor. For the drawing, I downloaded the software Autodesk Eagle. I followed the presentation of Tiziano Berti, Lab coordinator, with Enrico Bassi, our instructor and director at Opendot. It was all new for me. So I thanked them for the presentation and to have registered it. I also started to follow the WEEK 6: ELECTRONICS DESIGN Fab Academy tutorial: Introduction to Eagle, which I found very useful. I greatly thank Anna Kaziunas France and Eduardo Chamorro for the work done. I understand that I am very slow, and I need to be more disciplined and organized, but strangely, the course costed me so much in money and effort, that I think I'll overcome any obstacle.

I proceeded following the tutorial, opening a new project, Helloworld,

Hellow world

installing the fab.lbr library of components,

fab.lbr library

and created this schematic file: the drawing representing a circuit with the electronic components I downloaded from the libraries.

Here the components of my Helloworld board, later registered as Hello board:

Source: Fab Academy tutorial: Introduction to Eagle

I added and moved the components in the schematic, following the instructions from the tutorial and using the commands Add, Move. Then I used the command Net for connecting pin 6 (PA7) on the micro-controller to the button; pin 10 (PA 3) to the LED.

So did I with parts of the 6-pin programming header, the FTDI header, the 20 MHz resonator, grounds and VCC (connections to power) as it is shown on the schematic. Here in the picture:

Naming the MISO pin

the command Name for naming the pin MISO: Master Input Slave Output, or Master In Slave Out (data output from slave) of the 6-pin programming header.

Another picture to connect two related pins while renaming them with a single name:

Connecting two related MISO pins

I checked the schematic for any errors, with the command ERC: electronic rules check, to ensure my board will actually work. I found no error and five warnings which were not important for the creation of my board. I was happy of the result:

ATTINY44

I clicked in file to the function Switch to board and worked on the board file.

After a long time and many problems with the traces, I draw this board:

Hello board file

I clicked on Tools and on the command DRC: design rules check to fixe the clearance at 0.41mm for wire and pad in the Eagle design rules:

Hello board file

Then, I checked the board for any errors, to ensure my board will actually work. I found no error and two airwires on the button which were not important for the creation of my board:

Hello board DRC

I was happy of the result. I am thankful to Enrico Bassi for the optimization of the space on my board. He insisted on it. It took me a long time to move the objects, but I am proud of the result.

Export of the file in PNG format
I kept only the top and dimension as visible layers. I am thankful to my colleague Francesco Pasolino for reminding me to export it in monocrome. Then, I use the Inkscape software to design the outline. I wanted the shape of o flower which became a kind of star. Here the pictures of my trial:

3-layer flower design Here the .png pictures
Flower board traces Flower board outline
Milling the PCB
Following the procedures I described in Exercise05, I converted the .png above pictures in .rml files for the Roland MD 40 milling machine. In my new job as a welder I had to mill more boards, so I post here two Flower board trace .rml files: one with a 0,4mm pcb cutter and a 0,3mm engraving bit.
Flower board trace .rml file with a 0,4mm pcb cutter Flower board trace .rml file with a 0,3mm engraving bit Flower board outline .rml file

Then I milled the board as in the following pictures:

Here the result:

The board ready to be soldered

Assembling the PCB
It has been a long and hard adventure. In Exercise05, I used the soldering paste with stencils which was quite an easy procedure for a first experience. In this exercise, our instructor adviced us to use the soldering iron which requested me practice, method, and precision. I had a lot of difficulties and a long training. For soldering the components I followed the board design, and soldered in the easiest way for my dexterity.

Here some pictures:

Soldering resistors> My final board at the third trial

Check my Work
I checked my work with the digital multimeter, and apparently all the connections were responding well. I felt ready for programming my board.
Software Installation

I followed the instructions as described in the Fab Academy WEEK 8: EMBEDDED PROGRAMMING>a> tutorial, reminding me how we programmed our USPtinyISP/ATtiny 45 in Exercise05. I downloaded the code files from the Academy in a single file I named Helloboard, as described in this picture: - hello.ftdi.44.echo.c - hello.ftdi.44.echo.c.make - term.py. I connected both my USBtinyISP programmer and my board to my computer and between them, using the FTDI connections. When I connected the programmer and the board between them, I made sure that the same pins were connected. I checked in both schemes where was the GND. Here the picture:

Connecting the GNDs

.
Get and build the firmware

First, I opened the file Helloboard containing the three above code files with Git Bash. Then, I executed the first one:

make -f hello.ftdi.44.echo.c.make


Next, I executed the command that allows the creation of the fuses:

make -f hello.ftdi.44.echo.c.make program-usbtiny-fuses

Unfortunately it failed. Checking my board, with my instructor, Enrico Bassi, and a student, Francesco Pasino, we understood that there was a short circuit under the FTDI. In the meantime I milled another board, sawed and smoothed it. Then I soldered the parts, and as in the picture below, connected it to my USBtinyISP programmer and my computer.

Connecting the GNDs

I opened the file Helloboard containing the three above code files with Git Bash. Then, I executed the first one:

make -f hello.ftdi.44.echo.c.make


Next, I executed the command that allows the creation of the fuses:

make -f hello.ftdi.44.echo.c.make program-usbtiny-fuses

Everything worked fine, so I proceeded to the third step:

make -f hello.ftdi.44.echo.c.program-usbtiny

Program the ATtiny44
I followed this tutorial Programming an ATtiny w/ Arduino 1.6 (or 1.0) by High-Low Tech Group : MIT Media Lab. (work in progress)
Test the programmer

Here a video of my board successfully programmed.