Objective

This week we are programming our board to do something.

Programming board 1

Before I got started with my own board I downloaded arduino 1.6 and added ATtiny support follwing instructions on High-Low-Tech.

Because I have no experience in programming I started with the (very helpful) arduino tutorial on the arduino website. They walk you through the built-in blinking example and explain what every line of code means. I also worked through the button example. By combining what I learned from both examples, I wrote my very first c-code in arduino:

//                        attiny85
//                   reset -+---+- power
// (on while touching) pb3 -+*  +- pb2 (toggled by touch)
//       (touch input) pb4 -+   +- pb1 (fading while touching)
//                  ground -+---+- pb0 (fading always)


//                        attiny44
//                      power -+---+- GND
//                  10 -  pb0 -+*  +- pa0 -0
//                     9 -pb1 -+   +- pa1 - 1
//                 reset -pb3 -+---+- pa2 -2
//                     8 -pb2 -+*  +- pa3 -3
//                     7 -pa7 -+   +- pa4 -4
//                     6 -pa6 -+---+- pa5 -5




//Define constants:
const int button = 8; //pin with the button, duh
const int LED = 2; //pin with the LED

int val = 0; //define button state

void setup() {
  // put your setup code here, to run once:
pinMode(button, INPUT_PULLUP); //use the internal pullup of the microprocessor
pinMode(LED, OUTPUT); //LED pin will be our output pin
}

void loop() {
  // put your main code here, to run repeatedly:
val = digitalRead(button);
   if (val == LOW) {
     digitalWrite(LED, LOW);
     delay (100) ; // 100 microsecond delay
     digitalWrite(LED, HIGH); // puts 5V on the LED pin
     delay (100);
          digitalWrite(LED, LOW);
     delay (100) ;
     digitalWrite(LED, HIGH);
     delay (100);
   }
   else {

     digitalWrite(LED, HIGH); 
   }



  

}

The LED is on when I don't press the button and blinks twice when I press it.

I then went back and dug out my board from week 5 and tried to program it. I was able to upload my program using my FabISP (settings in arduino: attiny44, 20MHz external, /dev/ttyUSB0, USBtinyISP) but the blinking did not work. I tried trouble shooting with Sam:

Unfortunatley all efforts were in vain and I could'nt get the board to blink. I then decided to change the design slightly: I wanted to move the traces running under the FTDI header further appart and include a GND trace that was easy to access with a multimeter.

new_old1
new_old2

This board also didn't work. I then decided to start over from scratch in Eagle and design a new board with the same functionality:

blink3
blink3

Programming this board worked and I got it to blink using the code I posted above:

Yay! I'm going home now, see you next week.