Week 5: Electronics Design

This week, we turn to the designing of circuit layout. Our task is to redraw the echo hello-world board (based on the ATtiny44 controller) with a few modifications, followed by making and testing it.

PCB design

For designing the PCB, I chose Eagle. The design itself consisted of three parts: drawing the schematic, arranging parts, and routing. In my design, I have also introduced a blue LED and a switch with current limiting resistors, which were connected to pins PA7 and PB2 respectively

Drawing schematic

Parts arrangement and routing

Afterwards, I converted the design files to the png for the traces and outline, which after the necessary step of scaling the resolution by a factor of two, were ready to be feeded into the mods software:

Traces

Outline

One can see that I have also introduced a ground plane. At the moment, it serves no purpose other than accelerating the milling process. However, in my future designs, I would like to use this feature as an easy access to the ground voltage (if properly done, the voltage on the ground plane will be very close to the promised ground reference value due to the dimensions, unlike in the case of a thin GND trace)

After milling the board, I have carefully removed all the residues under a microscope. Then, I have stuffed the board, with the following outcome:

Milled board + fine work

Ready board

Finishing the programmer

In Week3 assignment, I have built the DIY programmer (and programmed it with a common avrisp2 programmer). To finish it, I needed to turn the ATtiny45's reset pin into a GPIO pin, which can be accomplished with a simple "make rstdisbl" command. Afterwards, I blew the reset fuse (denoted with an arrow below)

Disabling reprogramming

Blowing the reset fuse

Now is an interesting part: I connect a DIY programmer with a DIY hello world board (and also connect it to a computer with the FTDI serial-to-USB cable).

Rhino modelling

I then programmed the latter board with the code whose function is to return whatever one presses on a keyborad.

Programming echo hello-world board

Once programming is done, one can find both the programmer and the board in the external devices of my computer. Finally, I disconnted the programmer, leaving only the ATtiny44 board. As one can find below, the Hello world program works out great!

Found devices

Hello world program

It took a few seconds of a delay to wait for the output display after pressing on the keyboard.

Signal test

Just as a quick reality check, I have decided to test what happens at the FTDI interface. When no button is pressed (G, CTS, VCC, TX, RX, RTS) signals are measured as (0.0, 4.0, 5.0, 4.0, 4.6, 0.0) Volts.

The pins of interest are TX and RX. After the button is pressed, one can find the following changes in voltages at those terminals, which last for ~5 ms:

TX signal

TX signal (fine)

The TX signal drops to zero for ~100 ms followed by a set of small ~0.6Vpp oscillations

RX signal

RX signal (fine)

As for the RX signal, it oscillates between 4.6 and 0.0 V for ~4ms.

Used/learned software tools

Issues

Files