Week SIX.

Electronics Programming

Main Page

Starting Point: Feeling like I Know Nothing about Everything

Read

I decided to start off this week thinking it would be a chance to dig into the understanding of programming--getting acquainted to these very far off notions. So, I began by taking the first couple of days to read Make: AVR Programming and try to digest some of the basic concepts.

Once I felt more or less still unsure, I decided to just jump right into it and learn along the way...after all, that's what the rest of these weeks have been. So, enter in, my sleeping board.

I started off by hooking up my board to the programmer via cable, Programmer to my laptop, and my laptop to my circuit board (as a source of power).

Type in: avrdude -c usbtiny -p attiny44 and..... nothing. There was an error, and thus my board wasn't being detected.

Enter in, Tiffany (TA) who after analyzing my board, tells me a fact no other beginner student wants to hear

"You probably have to remill your board"

I don't know if you remember the horrific debacle I went through during Week4 (Electronic Design), but I was not thrilled. It turns out that in all of that frustration of last week, of cut depth and setting the origin, in milling my traces, my Offset was 1. What does this mean, you ask? Well, basically, due to what I thought was neat soldering didn't matter because the smallest mishap of a solder blob would unintentionally connect together the entire board.

I tried to remove some solder using solder braids, but I was too optimistic And thus began the horrible process of milling boards using the MDX-20.

I happenchance found that huge piece of copper to account for the weird amount of space the outline occupied and thus offset my whole board. And began milling....

Attempt #1

What I thought was a beautifully milled board, AND after my first go around, I was delightfully dissappointed only to see that the bit did not mill far into the copper. So, although my Offset was 4, the bit didn't remove as much of the copper as it needed to. And as this wasn't a problem I had ever encountered previously, at least to this middle grounded degree, I realized how I could have potentially repaired this easily if I hadn't already removed the copper plate from the mill.

Attempt #2

And so, I decided to do it a gain, but this time to increase the cut depth. I did this, however, after I did my best to scrape up all of the bubbles, tape debris, weird stuff that might have been stuck on the back of the copper plate and the top of the 'sacrificial layer'.

Attempt #3

And then, finally, magically, I managed to perfect the depth and ensure the surface was more level than I realized I had been doing previously. And so, ensuring that the Offset was 4, that the bit was accurately zeroed, and that there was enought room for the entire trace, I managed to milll this board.

What I realized too late, and there was nothing I could do about it was that my traces were too thin, and thus this Offset of 4 perhaps did more damage than good. Becaus of the thinness of my traces, some had popped off of the board--some still in tact and others missing.... And so, I was frustrated, ranted at my TA, and decided to leave. This was all a matter of my design.

Attempt #4

So, this attempt required a redesigning of my board--and in doing so, I decided to get away from this oddly circular shape--straight lines for an outline would be my friend to ensure that my board would fit perfectly on one of those 2x3" pieces of copper we have in the shop.

So, after increasing the size of my traces from ~.15 (?) to .2, and adding a little flair (to keep up morale), my trace and outline looked like:

After uploading my trace using fabmodules I made sure I had no errors of Zeroing on all axes, Offset, and Cut Depth!

Even this took two iterations. The first time, the cut depth was set at .14mm. And after the STRONG suggestions of a classmate, I increased it to .3mm. However, in between those two, as I moved my bit back to the origin, it dragged along the copper. I thought nothing of it, a little scratch I thought, but.... we will see how this plays later on.

Nevertheless, I was able to finally mill my board successfully! Just to stay on the safe side, I also decided to increase my cut depth for my outline.

She reads: "Practice Makes {Almost} Perfect"

So, yet again, I connected my Circuit Board and Programmer through the Cable, the Programmer to my laptop through the USB , andy my circuit board with my laptop (as a power source) through the FTDI cable.

But for some reason it wasn't beint read. After consultation with Rob, we realized that this was all a matter of my design. Two weeks ago when I was using Eagle to create my circuit baord, I hadn't realized that all the Ground from my ATtiny and FTDI port had to be connected somehow. And so they weren't, and so with no connection, my board was not being read.

So, I used a wire to connect Ground from these two places, and voila:

However, it still wasn't being read. So, I went through with a microscope and realized it was because the traces had been disconnected due to the dragging of the bit. I used another wire to connect two disconnectd components, illustrated via the red wire. FINALLY!!!!! I was so happy when my Circuit Board could be read!

SUCCESSSSS!!!!! Who knew pressing a button could feel so empowering?

So, the weirdest part about this entire process is that I was able to program my circuit board with the code that I modelled after what Rob Hart created---for the light to turn on after I press the button. However, to the advice of one of my peers, I tried to reprogram my board with a much simpler code, to practice the basics--in this particular code, the light is supposed to just be on.

But nothing.... At this point, I had to come to terms with the fact that not everything can happen within the blink of an eye or even after 6+ hours of work. So, that is my next task, to understand what may or may have not gone wrong.

How funny that through all of that, the most laboring part of this process was the billion failures that came with the physical creation and design part of this board. The programming part of it was such a small fraction of how I spent my time. But hey, I was able to make my light turn on by pressing the button! :)