diff --git a/3DPrint.stl b/3DPrint.stl
new file mode 100644
index 0000000..d9fa7c2
--- /dev/null
+++ b/3DPrint.stl
Binary files differ

diff --git a/3DPrint.stl b/3DPrint.stl
new file mode 100644
index 0000000..d9fa7c2
--- /dev/null
+++ b/3DPrint.stl
Binary files differ
diff --git a/Attiny85_Source.ino b/Attiny85_Source.ino
new file mode 100644
index 0000000..4daf306
--- /dev/null
+++ b/Attiny85_Source.ino
@@ -0,0 +1,151 @@
+#include <avr/sleep.h>
+#include <avr/wdt.h>
+#ifndef cbi
+#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
+#endif
+#ifndef sbi
+#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
+#endif
+
+int led = 1;           // the PWM pin the LED is attached to
+volatile boolean f_wdt = 1;
+int counter = 0;
+
+// the setup routine runs once when you press reset:
+void setup() {
+  pinMode(led, OUTPUT);
+  setup_watchdog(15); // approximately 4 seconds sleep
+
+}
+
+void fade(){
+  for (int i = 0; i < 255; i++){ 
+    analogWrite(led, i); 
+    delay(5); 
+  }
+  for (int i = 255; i > 0; i--){ 
+    analogWrite(led, i);
+    delay(5);
+  }
+}
+
+void jumpFade(){
+  for(int i = 0; i < 6; i++){
+    int j = i * 50;
+    analogWrite(led, j);
+    delay(500);
+  }
+  for(int i = 5; i > 0; i--){
+    int j = i * 50;
+    analogWrite(led, j);
+    delay(500);
+  }
+}
+
+void morse(){
+  lS();
+  lA();
+  lY();
+  space();
+  lH();
+  lI();
+  space();
+}
+
+void loop() {
+  if (f_wdt==1) {  // wait for timed out watchdog / flag is set when a watchdog timeout occurs
+    f_wdt=0;       // reset flag
+  } 
+  
+  fade();
+  fade();
+  fade();
+  system_sleep();
+  
+  jumpFade();
+  jumpFade();
+  jumpFade();
+  system_sleep();
+  
+  morse();
+  morse();
+  morse();
+  system_sleep();
+}
+
+//functions for the letters and the numbers
+void lA () {dot();dash();shortspace();}//letter A in morse code!
+void lB () {dash();dot();dot();dot();shortspace();}//same for B
+void lC () {dash();dot();dash();dot();shortspace();}
+void lD () {dash();dot();dot();shortspace();}
+void lE () {dot();shortspace();}
+void lF () {dot();dot();dash();dot();shortspace();}
+void lG () {dash();dash();dot();shortspace();}
+void lH () {dot();dot();dot();dot();shortspace();}
+void lI () {dot();dot();shortspace();}
+void lJ () {dot();dash();dash();dash();shortspace();}
+void lK () {dash();dot();dash();shortspace();}
+void lL () {dot();dash();dot();dot();shortspace();}
+void lM () {dash();dash();shortspace();}
+void lN () {dash();dot();shortspace();}
+void lO () {dash();dash();dash();shortspace();}
+void lP () {dot();dash();dash();dot();shortspace();}
+void lQ () {dash();dash();dot();dash();shortspace();}
+void lR () {dot();dash();dot();shortspace();}
+void lS () {dot();dot();dot();shortspace();}
+void lT () {dash();shortspace();}
+void lU () {dot();dot();dash();shortspace();}
+void lV () {dot();dot();dot();dash();shortspace();}
+void lW () {dot();dash();dash();shortspace();}
+void lX () {dash();dot();dot();dash();shortspace();}
+void lY () {dash();dot();dash();dash();shortspace();}
+void lZ () {dash();dash();dot();dot();shortspace();}
+void n1 () {dot();dash();dash();dash();dash();shortspace();}//number 1 in morse code
+void n2 () {dot();dot();dash();dash();dash();shortspace();}
+void n3 () {dot();dot();dot();dash();dash();shortspace();}
+void n4 () {dot();dot();dot();dot();dash();shortspace();}
+void n5 () {dot();dot();dot();dot();dot();shortspace();}
+void n6 () {dash();dot();dot();dot();dot();shortspace();}
+void n7 () {dash();dash();dot();dot();dot();shortspace();}
+void n8 () {dash();dash();dash();dot();dot();shortspace();}
+void n9 () {dash();dash();dash();dash();dot();shortspace();}
+void n0 () {dash();dash();dash();dash();dash();shortspace();}
+void space () {delay (1200);}//space between words
+void dot () {analogWrite(led, 150); delay (300); digitalWrite(led,LOW); delay (300);}//the dot this code make the led on for 300 than off for 300
+void dash () {analogWrite(led, 150); delay (900); digitalWrite(led,LOW); delay (300);}//the dash this code make the led on for 900 than off for 300
+void shortspace () {delay(600);}//space between letters
+
+// set system into the sleep state 
+// system wakes up when wtchdog is timed out
+void system_sleep() {
+  digitalWrite(led,LOW);
+  cbi(ADCSRA,ADEN);                    // switch Analog to Digitalconverter OFF
+  set_sleep_mode(SLEEP_MODE_PWR_DOWN); // sleep mode is set here
+  sleep_enable();
+  sleep_mode();                        // System sleeps here
+  sleep_disable();                     // System continues execution here when watchdog timed out 
+  sbi(ADCSRA,ADEN);                    // switch Analog to Digitalconverter ON
+}
+// 0=16ms, 1=32ms,2=64ms,3=128ms,4=250ms,5=500ms
+// 6=1 sec,7=2 sec, 8=4 sec, 9= 8sec
+void setup_watchdog(int ii) {
+  byte bb;
+  int ww;
+  if (ii > 9 ) ii=9;
+  bb=ii & 7;
+  if (ii > 7) bb|= (1<<5);
+  bb|= (1<<WDCE);
+  ww=bb;
+  MCUSR &= ~(1<<WDRF);
+  // start timed sequence
+  WDTCR |= (1<<WDCE) | (1<<WDE);
+  // set new watchdog timeout value
+  WDTCR = bb;
+  WDTCR |= _BV(WDIE);
+}
+
+// Watchdog Interrupt Service / is executed when watchdog timed out
+ISR(WDT_vect) {
+  counter++;
+  f_wdt=1;  // set global flag
+}

diff --git a/3DPrint.stl b/3DPrint.stl
new file mode 100644
index 0000000..d9fa7c2
--- /dev/null
+++ b/3DPrint.stl
Binary files differ
diff --git a/Attiny85_Source.ino b/Attiny85_Source.ino
new file mode 100644
index 0000000..4daf306
--- /dev/null
+++ b/Attiny85_Source.ino
@@ -0,0 +1,151 @@
+#include <avr/sleep.h>
+#include <avr/wdt.h>
+#ifndef cbi
+#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
+#endif
+#ifndef sbi
+#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
+#endif
+
+int led = 1;           // the PWM pin the LED is attached to
+volatile boolean f_wdt = 1;
+int counter = 0;
+
+// the setup routine runs once when you press reset:
+void setup() {
+  pinMode(led, OUTPUT);
+  setup_watchdog(15); // approximately 4 seconds sleep
+
+}
+
+void fade(){
+  for (int i = 0; i < 255; i++){ 
+    analogWrite(led, i); 
+    delay(5); 
+  }
+  for (int i = 255; i > 0; i--){ 
+    analogWrite(led, i);
+    delay(5);
+  }
+}
+
+void jumpFade(){
+  for(int i = 0; i < 6; i++){
+    int j = i * 50;
+    analogWrite(led, j);
+    delay(500);
+  }
+  for(int i = 5; i > 0; i--){
+    int j = i * 50;
+    analogWrite(led, j);
+    delay(500);
+  }
+}
+
+void morse(){
+  lS();
+  lA();
+  lY();
+  space();
+  lH();
+  lI();
+  space();
+}
+
+void loop() {
+  if (f_wdt==1) {  // wait for timed out watchdog / flag is set when a watchdog timeout occurs
+    f_wdt=0;       // reset flag
+  } 
+  
+  fade();
+  fade();
+  fade();
+  system_sleep();
+  
+  jumpFade();
+  jumpFade();
+  jumpFade();
+  system_sleep();
+  
+  morse();
+  morse();
+  morse();
+  system_sleep();
+}
+
+//functions for the letters and the numbers
+void lA () {dot();dash();shortspace();}//letter A in morse code!
+void lB () {dash();dot();dot();dot();shortspace();}//same for B
+void lC () {dash();dot();dash();dot();shortspace();}
+void lD () {dash();dot();dot();shortspace();}
+void lE () {dot();shortspace();}
+void lF () {dot();dot();dash();dot();shortspace();}
+void lG () {dash();dash();dot();shortspace();}
+void lH () {dot();dot();dot();dot();shortspace();}
+void lI () {dot();dot();shortspace();}
+void lJ () {dot();dash();dash();dash();shortspace();}
+void lK () {dash();dot();dash();shortspace();}
+void lL () {dot();dash();dot();dot();shortspace();}
+void lM () {dash();dash();shortspace();}
+void lN () {dash();dot();shortspace();}
+void lO () {dash();dash();dash();shortspace();}
+void lP () {dot();dash();dash();dot();shortspace();}
+void lQ () {dash();dash();dot();dash();shortspace();}
+void lR () {dot();dash();dot();shortspace();}
+void lS () {dot();dot();dot();shortspace();}
+void lT () {dash();shortspace();}
+void lU () {dot();dot();dash();shortspace();}
+void lV () {dot();dot();dot();dash();shortspace();}
+void lW () {dot();dash();dash();shortspace();}
+void lX () {dash();dot();dot();dash();shortspace();}
+void lY () {dash();dot();dash();dash();shortspace();}
+void lZ () {dash();dash();dot();dot();shortspace();}
+void n1 () {dot();dash();dash();dash();dash();shortspace();}//number 1 in morse code
+void n2 () {dot();dot();dash();dash();dash();shortspace();}
+void n3 () {dot();dot();dot();dash();dash();shortspace();}
+void n4 () {dot();dot();dot();dot();dash();shortspace();}
+void n5 () {dot();dot();dot();dot();dot();shortspace();}
+void n6 () {dash();dot();dot();dot();dot();shortspace();}
+void n7 () {dash();dash();dot();dot();dot();shortspace();}
+void n8 () {dash();dash();dash();dot();dot();shortspace();}
+void n9 () {dash();dash();dash();dash();dot();shortspace();}
+void n0 () {dash();dash();dash();dash();dash();shortspace();}
+void space () {delay (1200);}//space between words
+void dot () {analogWrite(led, 150); delay (300); digitalWrite(led,LOW); delay (300);}//the dot this code make the led on for 300 than off for 300
+void dash () {analogWrite(led, 150); delay (900); digitalWrite(led,LOW); delay (300);}//the dash this code make the led on for 900 than off for 300
+void shortspace () {delay(600);}//space between letters
+
+// set system into the sleep state 
+// system wakes up when wtchdog is timed out
+void system_sleep() {
+  digitalWrite(led,LOW);
+  cbi(ADCSRA,ADEN);                    // switch Analog to Digitalconverter OFF
+  set_sleep_mode(SLEEP_MODE_PWR_DOWN); // sleep mode is set here
+  sleep_enable();
+  sleep_mode();                        // System sleeps here
+  sleep_disable();                     // System continues execution here when watchdog timed out 
+  sbi(ADCSRA,ADEN);                    // switch Analog to Digitalconverter ON
+}
+// 0=16ms, 1=32ms,2=64ms,3=128ms,4=250ms,5=500ms
+// 6=1 sec,7=2 sec, 8=4 sec, 9= 8sec
+void setup_watchdog(int ii) {
+  byte bb;
+  int ww;
+  if (ii > 9 ) ii=9;
+  bb=ii & 7;
+  if (ii > 7) bb|= (1<<5);
+  bb|= (1<<WDCE);
+  ww=bb;
+  MCUSR &= ~(1<<WDRF);
+  // start timed sequence
+  WDTCR |= (1<<WDCE) | (1<<WDE);
+  // set new watchdog timeout value
+  WDTCR = bb;
+  WDTCR |= _BV(WDIE);
+}
+
+// Watchdog Interrupt Service / is executed when watchdog timed out
+ISR(WDT_vect) {
+  counter++;
+  f_wdt=1;  // set global flag
+}
diff --git a/concept.png b/concept.png
new file mode 100644
index 0000000..790d1ab
--- /dev/null
+++ b/concept.png
Binary files differ

diff --git a/3DPrint.stl b/3DPrint.stl
new file mode 100644
index 0000000..d9fa7c2
--- /dev/null
+++ b/3DPrint.stl
Binary files differ
diff --git a/Attiny85_Source.ino b/Attiny85_Source.ino
new file mode 100644
index 0000000..4daf306
--- /dev/null
+++ b/Attiny85_Source.ino
@@ -0,0 +1,151 @@
+#include <avr/sleep.h>
+#include <avr/wdt.h>
+#ifndef cbi
+#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
+#endif
+#ifndef sbi
+#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
+#endif
+
+int led = 1;           // the PWM pin the LED is attached to
+volatile boolean f_wdt = 1;
+int counter = 0;
+
+// the setup routine runs once when you press reset:
+void setup() {
+  pinMode(led, OUTPUT);
+  setup_watchdog(15); // approximately 4 seconds sleep
+
+}
+
+void fade(){
+  for (int i = 0; i < 255; i++){ 
+    analogWrite(led, i); 
+    delay(5); 
+  }
+  for (int i = 255; i > 0; i--){ 
+    analogWrite(led, i);
+    delay(5);
+  }
+}
+
+void jumpFade(){
+  for(int i = 0; i < 6; i++){
+    int j = i * 50;
+    analogWrite(led, j);
+    delay(500);
+  }
+  for(int i = 5; i > 0; i--){
+    int j = i * 50;
+    analogWrite(led, j);
+    delay(500);
+  }
+}
+
+void morse(){
+  lS();
+  lA();
+  lY();
+  space();
+  lH();
+  lI();
+  space();
+}
+
+void loop() {
+  if (f_wdt==1) {  // wait for timed out watchdog / flag is set when a watchdog timeout occurs
+    f_wdt=0;       // reset flag
+  } 
+  
+  fade();
+  fade();
+  fade();
+  system_sleep();
+  
+  jumpFade();
+  jumpFade();
+  jumpFade();
+  system_sleep();
+  
+  morse();
+  morse();
+  morse();
+  system_sleep();
+}
+
+//functions for the letters and the numbers
+void lA () {dot();dash();shortspace();}//letter A in morse code!
+void lB () {dash();dot();dot();dot();shortspace();}//same for B
+void lC () {dash();dot();dash();dot();shortspace();}
+void lD () {dash();dot();dot();shortspace();}
+void lE () {dot();shortspace();}
+void lF () {dot();dot();dash();dot();shortspace();}
+void lG () {dash();dash();dot();shortspace();}
+void lH () {dot();dot();dot();dot();shortspace();}
+void lI () {dot();dot();shortspace();}
+void lJ () {dot();dash();dash();dash();shortspace();}
+void lK () {dash();dot();dash();shortspace();}
+void lL () {dot();dash();dot();dot();shortspace();}
+void lM () {dash();dash();shortspace();}
+void lN () {dash();dot();shortspace();}
+void lO () {dash();dash();dash();shortspace();}
+void lP () {dot();dash();dash();dot();shortspace();}
+void lQ () {dash();dash();dot();dash();shortspace();}
+void lR () {dot();dash();dot();shortspace();}
+void lS () {dot();dot();dot();shortspace();}
+void lT () {dash();shortspace();}
+void lU () {dot();dot();dash();shortspace();}
+void lV () {dot();dot();dot();dash();shortspace();}
+void lW () {dot();dash();dash();shortspace();}
+void lX () {dash();dot();dot();dash();shortspace();}
+void lY () {dash();dot();dash();dash();shortspace();}
+void lZ () {dash();dash();dot();dot();shortspace();}
+void n1 () {dot();dash();dash();dash();dash();shortspace();}//number 1 in morse code
+void n2 () {dot();dot();dash();dash();dash();shortspace();}
+void n3 () {dot();dot();dot();dash();dash();shortspace();}
+void n4 () {dot();dot();dot();dot();dash();shortspace();}
+void n5 () {dot();dot();dot();dot();dot();shortspace();}
+void n6 () {dash();dot();dot();dot();dot();shortspace();}
+void n7 () {dash();dash();dot();dot();dot();shortspace();}
+void n8 () {dash();dash();dash();dot();dot();shortspace();}
+void n9 () {dash();dash();dash();dash();dot();shortspace();}
+void n0 () {dash();dash();dash();dash();dash();shortspace();}
+void space () {delay (1200);}//space between words
+void dot () {analogWrite(led, 150); delay (300); digitalWrite(led,LOW); delay (300);}//the dot this code make the led on for 300 than off for 300
+void dash () {analogWrite(led, 150); delay (900); digitalWrite(led,LOW); delay (300);}//the dash this code make the led on for 900 than off for 300
+void shortspace () {delay(600);}//space between letters
+
+// set system into the sleep state 
+// system wakes up when wtchdog is timed out
+void system_sleep() {
+  digitalWrite(led,LOW);
+  cbi(ADCSRA,ADEN);                    // switch Analog to Digitalconverter OFF
+  set_sleep_mode(SLEEP_MODE_PWR_DOWN); // sleep mode is set here
+  sleep_enable();
+  sleep_mode();                        // System sleeps here
+  sleep_disable();                     // System continues execution here when watchdog timed out 
+  sbi(ADCSRA,ADEN);                    // switch Analog to Digitalconverter ON
+}
+// 0=16ms, 1=32ms,2=64ms,3=128ms,4=250ms,5=500ms
+// 6=1 sec,7=2 sec, 8=4 sec, 9= 8sec
+void setup_watchdog(int ii) {
+  byte bb;
+  int ww;
+  if (ii > 9 ) ii=9;
+  bb=ii & 7;
+  if (ii > 7) bb|= (1<<5);
+  bb|= (1<<WDCE);
+  ww=bb;
+  MCUSR &= ~(1<<WDRF);
+  // start timed sequence
+  WDTCR |= (1<<WDCE) | (1<<WDE);
+  // set new watchdog timeout value
+  WDTCR = bb;
+  WDTCR |= _BV(WDIE);
+}
+
+// Watchdog Interrupt Service / is executed when watchdog timed out
+ISR(WDT_vect) {
+  counter++;
+  f_wdt=1;  // set global flag
+}
diff --git a/concept.png b/concept.png
new file mode 100644
index 0000000..790d1ab
--- /dev/null
+++ b/concept.png
Binary files differ
diff --git a/prototype.png b/prototype.png
new file mode 100644
index 0000000..140f8c4
--- /dev/null
+++ b/prototype.png
Binary files differ

diff --git a/3DPrint.stl b/3DPrint.stl
new file mode 100644
index 0000000..d9fa7c2
--- /dev/null
+++ b/3DPrint.stl
Binary files differ
diff --git a/Attiny85_Source.ino b/Attiny85_Source.ino
new file mode 100644
index 0000000..4daf306
--- /dev/null
+++ b/Attiny85_Source.ino
@@ -0,0 +1,151 @@
+#include <avr/sleep.h>
+#include <avr/wdt.h>
+#ifndef cbi
+#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
+#endif
+#ifndef sbi
+#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
+#endif
+
+int led = 1;           // the PWM pin the LED is attached to
+volatile boolean f_wdt = 1;
+int counter = 0;
+
+// the setup routine runs once when you press reset:
+void setup() {
+  pinMode(led, OUTPUT);
+  setup_watchdog(15); // approximately 4 seconds sleep
+
+}
+
+void fade(){
+  for (int i = 0; i < 255; i++){ 
+    analogWrite(led, i); 
+    delay(5); 
+  }
+  for (int i = 255; i > 0; i--){ 
+    analogWrite(led, i);
+    delay(5);
+  }
+}
+
+void jumpFade(){
+  for(int i = 0; i < 6; i++){
+    int j = i * 50;
+    analogWrite(led, j);
+    delay(500);
+  }
+  for(int i = 5; i > 0; i--){
+    int j = i * 50;
+    analogWrite(led, j);
+    delay(500);
+  }
+}
+
+void morse(){
+  lS();
+  lA();
+  lY();
+  space();
+  lH();
+  lI();
+  space();
+}
+
+void loop() {
+  if (f_wdt==1) {  // wait for timed out watchdog / flag is set when a watchdog timeout occurs
+    f_wdt=0;       // reset flag
+  } 
+  
+  fade();
+  fade();
+  fade();
+  system_sleep();
+  
+  jumpFade();
+  jumpFade();
+  jumpFade();
+  system_sleep();
+  
+  morse();
+  morse();
+  morse();
+  system_sleep();
+}
+
+//functions for the letters and the numbers
+void lA () {dot();dash();shortspace();}//letter A in morse code!
+void lB () {dash();dot();dot();dot();shortspace();}//same for B
+void lC () {dash();dot();dash();dot();shortspace();}
+void lD () {dash();dot();dot();shortspace();}
+void lE () {dot();shortspace();}
+void lF () {dot();dot();dash();dot();shortspace();}
+void lG () {dash();dash();dot();shortspace();}
+void lH () {dot();dot();dot();dot();shortspace();}
+void lI () {dot();dot();shortspace();}
+void lJ () {dot();dash();dash();dash();shortspace();}
+void lK () {dash();dot();dash();shortspace();}
+void lL () {dot();dash();dot();dot();shortspace();}
+void lM () {dash();dash();shortspace();}
+void lN () {dash();dot();shortspace();}
+void lO () {dash();dash();dash();shortspace();}
+void lP () {dot();dash();dash();dot();shortspace();}
+void lQ () {dash();dash();dot();dash();shortspace();}
+void lR () {dot();dash();dot();shortspace();}
+void lS () {dot();dot();dot();shortspace();}
+void lT () {dash();shortspace();}
+void lU () {dot();dot();dash();shortspace();}
+void lV () {dot();dot();dot();dash();shortspace();}
+void lW () {dot();dash();dash();shortspace();}
+void lX () {dash();dot();dot();dash();shortspace();}
+void lY () {dash();dot();dash();dash();shortspace();}
+void lZ () {dash();dash();dot();dot();shortspace();}
+void n1 () {dot();dash();dash();dash();dash();shortspace();}//number 1 in morse code
+void n2 () {dot();dot();dash();dash();dash();shortspace();}
+void n3 () {dot();dot();dot();dash();dash();shortspace();}
+void n4 () {dot();dot();dot();dot();dash();shortspace();}
+void n5 () {dot();dot();dot();dot();dot();shortspace();}
+void n6 () {dash();dot();dot();dot();dot();shortspace();}
+void n7 () {dash();dash();dot();dot();dot();shortspace();}
+void n8 () {dash();dash();dash();dot();dot();shortspace();}
+void n9 () {dash();dash();dash();dash();dot();shortspace();}
+void n0 () {dash();dash();dash();dash();dash();shortspace();}
+void space () {delay (1200);}//space between words
+void dot () {analogWrite(led, 150); delay (300); digitalWrite(led,LOW); delay (300);}//the dot this code make the led on for 300 than off for 300
+void dash () {analogWrite(led, 150); delay (900); digitalWrite(led,LOW); delay (300);}//the dash this code make the led on for 900 than off for 300
+void shortspace () {delay(600);}//space between letters
+
+// set system into the sleep state 
+// system wakes up when wtchdog is timed out
+void system_sleep() {
+  digitalWrite(led,LOW);
+  cbi(ADCSRA,ADEN);                    // switch Analog to Digitalconverter OFF
+  set_sleep_mode(SLEEP_MODE_PWR_DOWN); // sleep mode is set here
+  sleep_enable();
+  sleep_mode();                        // System sleeps here
+  sleep_disable();                     // System continues execution here when watchdog timed out 
+  sbi(ADCSRA,ADEN);                    // switch Analog to Digitalconverter ON
+}
+// 0=16ms, 1=32ms,2=64ms,3=128ms,4=250ms,5=500ms
+// 6=1 sec,7=2 sec, 8=4 sec, 9= 8sec
+void setup_watchdog(int ii) {
+  byte bb;
+  int ww;
+  if (ii > 9 ) ii=9;
+  bb=ii & 7;
+  if (ii > 7) bb|= (1<<5);
+  bb|= (1<<WDCE);
+  ww=bb;
+  MCUSR &= ~(1<<WDRF);
+  // start timed sequence
+  WDTCR |= (1<<WDCE) | (1<<WDE);
+  // set new watchdog timeout value
+  WDTCR = bb;
+  WDTCR |= _BV(WDIE);
+}
+
+// Watchdog Interrupt Service / is executed when watchdog timed out
+ISR(WDT_vect) {
+  counter++;
+  f_wdt=1;  // set global flag
+}
diff --git a/concept.png b/concept.png
new file mode 100644
index 0000000..790d1ab
--- /dev/null
+++ b/concept.png
Binary files differ
diff --git a/prototype.png b/prototype.png
new file mode 100644
index 0000000..140f8c4
--- /dev/null
+++ b/prototype.png
Binary files differ
diff --git a/schematic.png b/schematic.png
new file mode 100644
index 0000000..ff19a6f
--- /dev/null
+++ b/schematic.png
Binary files differ