Embedded Programming

After burning up two boards, realized what "short circuit" meant

So although I'm a CS major, I mainly deal with the programming side of things. You'd think this section would be pretty easy but...

Problem 1: why won't this board program?!

I decided I didn't have nearly enough time to learn embedded-C programming, various compilers, and the ATTiny44's datasheet, *and* figure out why the programmer I built in week 2 wouldn't program, *and* possibly debug my current board - so I went with the Arduino IDE and the AVRISP, both already installed on the IDC lab's computer.

I plugged my board from Week 5 into the AVRISP, powered it with a 6-pin cable, booted up the Arduino IDE, copied the attiny hardware folder into the relevant sketchbook folder (per provided instructions), and tried to install the provided blink sample on the board.


seriously?

This, of course, *also* explained why I had been unable to program my programmer as early as week 2.

With the new AVRISPII swapped in, my board blinked like a charm:

Problem 2: why did this board start smoking?

When I tried to program my board with the button input, however, two things quickly got weird. The first was that the board started smoking as soon as I loaded my modified button code onto it; the second was that, although it now functioned (pressing the button turned the LED off), it couldn't be reprogrammed; the Arduino ide would no longer recognize it.

Charles and I inspected the board for a bit, and found that (although this might be common knowledge to most of you) a trace had burnt clear off the board when it started smoking. We tacked a wire onto the board connecting the broken traces and tried to upload code again. Since my previous blink code had included a "set button pin to high" instruction, which I thought activated the ATTINY's pull-up resistor, Charles suggested I remove that line and see what happened.

But this time 1. the same trace burnt off in a completely different location, and 2. the board effectively went kaput and no longer worked.

Since they say hope springs eternal, I decided it was a problem with my soldering, and proceeded to mill and solder a new board of the same design. This one, too, blinked like a charm...

... But when the button code was loaded on, the same trace (between VCC and the button) rapidly burnt off. This finally inspired me to take another look at my board design diagram, where I realized something about my button wiring: VCC went directly to ground as soon as the button was pressed; that was most likely the reason for the burning traces.

Since I was unwilling to risk another board burning up, I decided to take a leaf from Dan Novy's book and add an (apparently unnecessary, but it makes me feel better) 10k resistor between VCC and the button in question. The redesigned board looks like below:

So when I next have a chance, I'm going to mill, solder, and attempt programming this board.

Index