Monday, April 14, 2014

Most used FortiGate VPN and Network Communication Commands

To see all configurations in your unit

show full

To see a brief configuration list

show

To restart a VPN tunnel

 (Change "Tennessee " to phase1 name)

diag vpn tunnel flush Tennessee
diag vpn tunnel reset Tennessee

To see VPN tunnel negotiation (Used to debug phase 1 and 2)

di de di
di de flow filter clear 
diag deb reset 
diag debug en  
diag debug application ike -1 

To sniff packets (Check basic in/out traffic, ping and ports)

di snif pack any 'host 170.142.66.2' 4

To see how the firewall handles the packets (I use this for policy checking, and VPN source address checks)

di de di
di de flow filter clear 
diag deb reset 
diag debug en  
diag debug flow filter saddr 10.200.0.2
diag debug flow filter daddr 170.142.66.2
diag debug flow show console en 
diag debug flow show function-name en
diag debug flow trace start 999 

Monday, March 17, 2014

Interactive Web - Dynamic JavaScript img src changer based on hover and unhover

Here is a quick example. http://jsfiddle.net/3tn2w/

<html>
<img id="my-img" src="../icondatalink.png" onmouseover="hover(this);" onmouseout="unhover(this);" />
</html>

<script>
/*!
Shawn McCombs 3/17/2014

Sorry the demo doesn't work, if the images existed it would.

Use two files 
    ../icondatalink.png
    and
    ../iconhoverdatalink.png
    
This is a dynamic image src changer based on hover and unhover.

I wrote this because doing it all manually seemed pointless.

 */

function hover(element) {
    var path = element.getAttribute("src");
var ext = "hover";
    
var path = [path.slice(0, 9), ext, path.slice(9)].join('');
    element.setAttribute('src', path);
}

function unhover(element) {
    var path = element.getAttribute("src");
var ext = "hover";
    path = path.replace(ext,"");
    element.setAttribute('src', path);
}
</script>

Wednesday, March 12, 2014

Interactive Web - JavaScript that changes Text box to blank when clicked

Here is a quick example. http://jsfiddle.net/9NTbX/

<html>
<input type="text" id="UserName" name="UserName" value="UserName" onclick="usernametoblank_clickHandler();">
</html>

<script>
function usernametoblank_clickHandler() {
 
    var val = document.getElementById("UserName").value;
 
    if (val ==  "UserName") {
        document.getElementById("UserName").value = "";
    }
}
</script>

Wednesday, March 5, 2014

Interactive Web - JavaScript that changes a comma delimited text input based on check boxes.

Here is a quick example. http://jsfiddle.net/DXSDK/

<html>
<input type="checkbox" onclick="checkbox_clickHandler(1);">
<input type="checkbox" onclick="checkbox_clickHandler(2);">
<input type="checkbox" onclick="checkbox_clickHandler(3);">
<input type="checkbox" onclick="checkbox_clickHandler(4);">
<input type="checkbox" onclick="checkbox_clickHandler(5);">
<input type="checkbox" onclick="checkbox_clickHandler(6);">
<input type="checkbox" onclick="checkbox_clickHandler(7);">
<input type="checkbox" onclick="checkbox_clickHandler(8);">
<input type="checkbox" onclick="checkbox_clickHandler(9);"><br>

<input type="text" id="AccessList">
</html>

<script>
         function checkbox_clickHandler(SiteID) { var str = document.getElementById("AccessList").value; var res = str.split(","); var x = 0 ; for (var i = 0; i < res.length; i++) { if(!res[i]) { res.splice(i,1); } if (SiteID == res[i]) { res.splice(i,1); x = 1; break; } } if (x != 1) { res.push(SiteID); } document.getElementById("AccessList").value = res.toString(); }
</script>

Monday, March 3, 2014

Python - Count every char in a text file

# Shawn McCombs 3-3-14
# This program, counts every char in a text file and displays them,
# and needs alice.txt found from http://www.gutenberg.org/ebooks/11

letters = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']

counter = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]

i = 0

print "Started"

with open('alice.txt') as f:
  while True:
    c = f.read(1)
    if not c:
      print "Done"
      break
    for letter in letters:
       if c == letter:
          counter[i] = counter[i] + 1
          i = 0
          break
       i = i + 1
       if i == 52:
             i = 0
     
i = 0

for letter in letters:
   print i, letter, counter[i]
   i = i + 1

print letters
print counter

Friday, March 16, 2012

Teensy RFID Logon System - Arduino

By: Shawn McCombs










If you want to re purpose this for a door lock, a chest lock, etc. Feel free to. The main purpose for this to me is when I come home all I have to do is swipe my wallet across the top of my laptop and it will login for me. This could also allow for higher security, longer passwords, drive lock, bios lock and other security options.

Most you may say, HA. I can get your code, and copy it. Well good for you, but can you get my laptop too? lol Even if you got it, do you have my drive lock code? Now I know it's possible to get passed all that. So on that note, no security is invulnerable.

I also did a test with aluminum foil to see how many wraps it would take to block the reader from reading a card, and it took, ~12 complete wraps. If your wondering.


You will also need the SoftwareSerial library. Which is included with Arduino software now.


To get your codes from your RFID cards use the Teensy 2.0 + Parallax RFID reader sketch from my other post. Just make sure to change the pins in the code or on the chip.



/*
Project: Teensy RFID Logon system
Dec 15 11 - Dec 26 11
-Shawn McCombs
 */

#include <SoftwareSerial.h>

int enablepin = 1;
int poweronpin = 2;

int  val = 0;
char code[10];
char vcode[11] = "380039850D";
int ready2 = 0;
int bytesread = 0;

#define rxPin 0
#define txPin 15

void setup()
{
  Serial.begin(2400);

  pinMode(enablepin,OUTPUT);
  pinMode(poweronpin,OUTPUT);  

  digitalWrite(enablepin, LOW);
  digitalWrite(poweronpin, LOW);  
}


void loop()
{

  SoftwareSerial RFID = SoftwareSerial(rxPin,txPin);
  RFID.begin(2400);

  if((val = RFID.read()) == 10)
  {   // check for header
    bytesread = 0;
    while(bytesread<10)
    {  // read 10 digit code
      val = RFID.read();
      if((val == 10)||(val == 13))
      {  // if header or stop bytes before the 10 digit reading
        break;                       // stop reading
      }
      code[bytesread] = val;         // add the digit        
      bytesread++;                   // ready to read next digit
    }

    if(bytesread == 10)
    {
       while (ready2 < 99)
       {
          if (code[ready2] == vcode[ready2])
          {
             Serial.print(code[ready2]);
             Serial.print(vcode[ready2]);
             Serial.print(" ");
             ready2 = ready2 + 1;
          } else {   //   Error or wrong card
            delay(300);
            digitalWrite(enablepin, HIGH);
            delay(300);
            digitalWrite(enablepin, LOW);
            delay(300);
            digitalWrite(enablepin, HIGH);
            delay(300);
            digitalWrite(enablepin, LOW);
            delay(300);
            digitalWrite(enablepin, HIGH);
            delay(300);
            digitalWrite(enablepin, LOW);
            delay(300);
          
             ready2 = 0;
             break;
          }
          if(ready2 == 10) { //   Right card

            digitalWrite(enablepin, HIGH); //   changes the red led to green
          
            digitalWrite(poweronpin, HIGH);
            delay(1000);   //   3 goes to transistor that controls the power button
            digitalWrite(poweronpin, LOW);
          
            delay(5000);
            Keyboard.set_key1(KEY_ENTER);
            Keyboard.send_now();
            Keyboard.set_key1(0);
            Keyboard.send_now();
          
            delay(11000);
            Keyboard.set_key1(KEY_ENTER);
            Keyboard.send_now();
            Keyboard.set_key1(0);
            Keyboard.send_now();
          
            delay(10000);
            Keyboard.set_key1(KEY_ENTER);
            Keyboard.send_now();
            Keyboard.set_key1(0);
            Keyboard.send_now();
          
            delay(100000);
            Keyboard.set_key1(KEY_RIGHT);
            Keyboard.send_now();
            Keyboard.set_key1(0);
            Keyboard.send_now();
            Keyboard.set_key1(KEY_ENTER);
            Keyboard.send_now();
            Keyboard.set_key1(0);
            Keyboard.send_now();
            delay(2000);
            Keyboard.print("password");
            Keyboard.set_key1(KEY_ENTER);
            Keyboard.send_now();
            Keyboard.set_key1(0);
            Keyboard.send_now();
          
            ready2 = 0;
            break;
          }
       }
    }

    bytesread = 0;
    delay(3000);                    
  }
}


Sources:
http://arduino.cc/playground/Learning/PRFID

Saturday, March 3, 2012

Teensy IR PC Remote Keyboard & Mouse / Youtube playlist player

By: Shawn McCombs


This project was a lot of fun to program. It good practice, and has a functional purpose. If you want to re purpose it feel free.



Here is the how to, for the program HOTKEYS and how to setup the VOL UP DOWN hotkeys.

You will also need the IRremote library.

To get your codes from your remote use the IRDemo sketch that comes with the library. Just make sure to add the 0x to the beginning of each code you get.






/*
Project: Teensy IR Keyboard
Mar 1 - Mar 2 12
-Shawn McCombs
 */

#include <IRremote.h>
#include <IRremoteInt.h>

int RECV_PIN = 10;  
int ledPin = 11;

int todo; 
int opened; 
int steps = 1;
int direct;
int place;
int mode;
int screen;

long previousMillis;
long interval = 100;

IRrecv irrecv(RECV_PIN);
decode_results results;

String digit, doneit;

String channels[] = {
  "zero",
  "http://www.youtube.com/watch?v=G17x99Sh424",
  "http://www.youtube.com/watch?v=EZbrSm5psT4",
  "http://www.youtube.com/watch?v=jUkoL9RE72o",
  "http://www.youtube.com/watch?v=7q2bNqe0Xyk",
  "http://www.youtube.com/watch?v=pMPrxg1bSPE",
  "http://www.youtube.com/watch?v=J4Mb5Yt_ylk",
  "http://www.youtube.com/watch?v=Zcps2fJKuAI",
  "http://www.youtube.com/watch?v=-SIgu2j4Nzs",
  "http://www.youtube.com/watch?v=mdJDPepGOAM",
  "http://www.shoutcast.com/shoutcast_popup_player?station_id=1254140&play_status=1&stn=Chillout%20Dreams%20-%20DIGITALLY%20IMPORTED%20-%20relax...", 
  "http://www.youtube.com/watch?v=bX5uSguogQM"
};

void setup()
  irrecv.enableIRIn(); 
  pinMode(ledPin, OUTPUT);  
  digitalWrite(ledPin, HIGH);
  
  digit = String("");
  doneit = String("");
}

void loop() {
  if (irrecv.decode(&results)) {
    if(results.value == 0x210700FF) {
      digit += 0;
    } else if (results.value == 0x2107807F) {
      digit += 1;
    } else if (results.value == 0x210740BF) {
      digit += 2;
    } else if (results.value == 0x2107C03F) {
      digit += 3;
    } else if (results.value == 0x210720DF) {
      digit += 4;
    } else if (results.value == 0x2107A05F) {
      digit += 5;
    } else if (results.value == 0x2107609F) {
      digit += 6;
    } else if (results.value == 0x2107E01F) {
      digit += 7;
    } else if (results.value == 0x210710EF) {
      digit += 8;
    } else if (results.value == 0x2107906F) {
      digit += 9;
    } else if (results.value == 0x2107EA15) {
      todo = digit.toInt();
      if (todo > 0 && todo < 12) {
        place = todo;
        doneit = channels[todo];
        doit(); 
        digit = "";
        todo = 0;
      } else {
        error();
      }
    } else if (results.value == 0x210706F9) {
      volup();
      direct = 5;
    } else if (results.value == 0x21078679) {
      voldown();
      direct = 6;
    } else if (results.value == 0x210726D9) {
      mute();
      direct = 0;
    } else if (results.value == 0x21071EE1) {
      refresh();
      direct = 0;
    } else if (results.value == 0x2107D926) {
      closewin();
      opened = 0;
      direct = 0;
    } else if (results.value == 0x210709F6) {
      if(screen == 0) {
        screen = 1;
      }
      screenswitch();
      direct = 0;
    } else if (results.value == 0x2107CE31) {
      steps = 1;
      up();
      direct = 1;
    } else if (results.value == 0x21076E91) {
      if(screen == 1) {
        Keyboard.set_key1(KEY_LEFT);
        Keyboard.send_now();
        Keyboard.set_key1(0);
        Keyboard.send_now();
      } else {
        steps = 1;
        left();
        direct = 2;
      }
    } else if (results.value == 0x21072ED1) {
      steps = 1;
      down();
      direct = 3;
    } else if (results.value == 0x2107AE51) {
      if(screen == 1) {
        Keyboard.set_key1(KEY_RIGHT);
        Keyboard.send_now();
        Keyboard.set_key1(0);
        Keyboard.send_now();
      } else {
        steps = 1;
        right();
        direct = 4;
      }
    } else if (results.value == 0x2107EE11) {
      if(screen == 1) {
        screen = 0;
        screenswitch();
      } else {
        direct = 0;
        leftmouse();
      }
    } else if (results.value == 0x21070EF1) {
      direct = 0;
      rightmouse();
    } else if (results.value == 0x21070AF5) {
      place++;
      if (place > 11) {
        place = 11;
        error();
      } else {
        doneit = channels[place];
        doit(); 
      }
    } else if (results.value == 0x21078A75) {
      place = place - 1;
      if (place < 0) {
        place = 0;
        error();
      } else if (place > 0) {
      doneit = channels[place];
      doit(); 
      } else {
        if (opened == 1) {
          closewin();
        }
      }
    }
    
    if(direct > 0 && results.value == 0xFFFFFFFF) {
      if(direct == 1) {
        up();
      } else if (direct == 2) {
        left();
      } else if (direct == 3) {
        down();
      } else if (direct == 4) {
        right();
      } else if (direct == 5) {
        volup();
      } else if (direct == 6) {
        voldown();
      } 
     
      
      unsigned long currentMillis = millis();

      if(currentMillis - previousMillis > interval) {
        previousMillis = currentMillis;   

        steps++;
        
        if (steps > 19) {
          steps = 20;
        }
      }
    }    
    irrecv.resume();
  }
}

void doit()  {
  if (opened == 0) {
    opened = 1;
  } else {
    closewin();
  }
  
  Keyboard.set_modifier(MODIFIERKEY_GUI);
  Keyboard.set_key1(KEY_R);
  Keyboard.send_now();
  Keyboard.set_modifier(0);
  Keyboard.set_key1(0);
  Keyboard.send_now();
  delay(100);
  delay(100);
  Keyboard.print(doneit); 
  delay(100);
  Keyboard.set_key1(KEY_ENTER);
  Keyboard.send_now();
  Keyboard.set_key1(0);
  Keyboard.send_now();
  
  doneit = "";
}

void error()  {
  digitalWrite(ledPin, LOW);
  delay(400);
  digitalWrite(ledPin, HIGH);
  delay(400);
  digitalWrite(ledPin, LOW);
  delay(400);
  digitalWrite(ledPin, HIGH);
  delay(400);
  digitalWrite(ledPin, LOW);
  delay(400);
  digitalWrite(ledPin, HIGH);
  delay(400);
  digitalWrite(ledPin, LOW);
  delay(400);
  digitalWrite(ledPin, HIGH);
}

void refresh()  {
  Keyboard.set_key1(KEY_F5);
  Keyboard.send_now();
  Keyboard.set_key1(0);
  Keyboard.send_now();
}

void closewin()  {
  Keyboard.set_modifier(MODIFIERKEY_ALT);
  Keyboard.set_key1(KEY_F4);
  Keyboard.send_now();
  Keyboard.set_modifier(0);
  Keyboard.set_key1(0);
  Keyboard.send_now();
}

void volup()  {
  Keyboard.set_modifier(MODIFIERKEY_CTRL | MODIFIERKEY_ALT);
  Keyboard.set_key1(KEY_UP);
  Keyboard.send_now();
  Keyboard.set_modifier(0);
  Keyboard.set_key1(0);
  Keyboard.send_now();
}

void voldown()  {
  Keyboard.set_modifier(MODIFIERKEY_CTRL | MODIFIERKEY_ALT);
  Keyboard.set_key1(KEY_DOWN);
  Keyboard.send_now();
  Keyboard.set_modifier(0);
  Keyboard.set_key1(0);
  Keyboard.send_now();
}

void mute()  {
  Keyboard.set_modifier(MODIFIERKEY_CTRL | MODIFIERKEY_ALT);
  Keyboard.set_key1(KEY_PERIOD);
  Keyboard.send_now();
  Keyboard.set_modifier(0);
  Keyboard.set_key1(0);
  Keyboard.send_now();
}

void up()  {
  Mouse.move(0, -steps);
}

void left()  {
  Mouse.move(-steps, 0);
}

void down()  {
  Mouse.move(0, steps);
}

void right()  {
  Mouse.move(steps, 0);
}

void leftmouse()  {
  Mouse.click();
}

void rightmouse()  {
  Mouse.set_buttons(0, 0, 1);
  Mouse.set_buttons(0, 0, 0);
}

void screenswitch()  {
  if (screen == 1) {
    Keyboard.set_modifier(MODIFIERKEY_ALT);
    Keyboard.set_key1(KEY_TAB);
    Keyboard.send_now();
    Keyboard.set_key1(0);
    Keyboard.send_now();
  } else {
    Keyboard.set_modifier(0);
    Keyboard.send_now();
  }
}

Tuesday, February 14, 2012

Project: Hill Fire - Fully Adjustable Xbox 360 Rapid Fire Mod with 6 custom classes primary and secondary speeds and Y button state - Attiny84 - Arduino

By: Shawn Mccombs

NOTES: I do not condone the use of rapid fire mods on online games, it gives a unfair advantage and is cheating. No one likes being cheated. You will use one of the dual shock spaces for the circuit. This only has been tested with a old model wireless controller (Matrix). I'm sure it would work with the new CG ones, but some settings would have to be changed and configured. Also the CG will need a different way to get power, like a transistor.

If someone wants to give me a CG controller then I will make a how-to for the CGs too. Comment below if you're interested. 

To decide if your controller is a CG or Matrix, click here and compare.








Now upload this sketch to your attiny84 if you have the old matrix type controller.



/*
Project: Hill Top
Jan 18 12 - Feb 14 12
-Shawn McCombs
http://www.theifdark.blogspot.com/2012/02/diy-how-to-project-hill-fire-fully.html
 Matrixs controllers version
 */

 #include <EEPROM.h>


const int tledPin = 0;  
const int buttonPin = 1;  
const int knobPin = 2;
const int yPin = 3;
const int rtrigPin = 4; 
const int ltrigPin = 5; 
const int ltrigPinout = 6; 
const int rtrigPinout = 7; 
const int yPinout = 8;
const int lledPin = 9; 
const int rledPin = 10; 


int resetyValue = 0;
int buttonState = 0;
int yValue = 0;
int ystate = 0;
int ltrigValue = 0;
int rtrigValue = 0;
int knobValue = 0;


int mode = 0;
int delValue = 0;


int p1 = 0; 
int s1 = 0;
int p2 = 0;
int s2 = 0;
int p3 = 0;
int s3 = 0;
int p4 = 0; 
int s4 = 0;
int p5 = 0;
int s5 = 0;
int p6 = 0;
int s6 = 0;


void setup() {
  pinMode(tledPin, OUTPUT);      
  pinMode(buttonPin, INPUT); 
  pinMode(yPin, INPUT); 
  pinMode(yPinout, OUTPUT);  
  pinMode(lledPin, OUTPUT);      
  pinMode(rledPin, OUTPUT);   
}


void loop() {
  yValue = digitalRead(yPin);
  
  if (yValue == HIGH) {
    digitalWrite(yPinout, HIGH);
    delay(40);
    digitalWrite(yPinout, LOW); 
    delay(250);
    ystate = ystate++;
    
    if(ystate == 2) {
      ystate = 0;
    }
  } 
  
  buttonState = analogRead(buttonPin);
  
  if (buttonState > 900 && buttonState < 950) {
    mode = mode++;
    
    if(mode == 10) {
      mode = 0;
    }
    
    if(mode == 0) {
      digitalWrite(lledPin, HIGH); 
      delay(250);             
      digitalWrite(lledPin, LOW);
    }
    
    if(mode == 1) {
      digitalWrite(rledPin, HIGH); 
      digitalWrite(lledPin, HIGH); 
      delay(250);             
      digitalWrite(rledPin, LOW);
      digitalWrite(lledPin, LOW);
    }
    
    if(mode == 2) {
      digitalWrite(rledPin, HIGH); 
      digitalWrite(lledPin, HIGH); 
      delay(250);             
      digitalWrite(rledPin, LOW);
      digitalWrite(lledPin, LOW);
      delay(250);             
      digitalWrite(lledPin, HIGH); 
      delay(250);             
      digitalWrite(lledPin, LOW);
    }
    
    if(mode == 3) {
      digitalWrite(rledPin, HIGH); 
      digitalWrite(lledPin, HIGH); 
      delay(250);             
      digitalWrite(rledPin, LOW);
      digitalWrite(lledPin, LOW);
      delay(250);             
      digitalWrite(rledPin, HIGH); 
      digitalWrite(lledPin, HIGH); 
      delay(250);             
      digitalWrite(rledPin, LOW);
      digitalWrite(lledPin, LOW);
    }
    
    if(mode == 4) {
      digitalWrite(rledPin, HIGH); 
      digitalWrite(lledPin, HIGH); 
      delay(250);             
      digitalWrite(rledPin, LOW);
      digitalWrite(lledPin, LOW);
      delay(250);             
      digitalWrite(rledPin, HIGH); 
      digitalWrite(lledPin, HIGH); 
      delay(250);             
      digitalWrite(rledPin, LOW);
      digitalWrite(lledPin, LOW);
      delay(250);             
      digitalWrite(lledPin, HIGH); 
      delay(250);             
      digitalWrite(lledPin, LOW);
      
    }
    
    if(mode == 5) {
      digitalWrite(rledPin, HIGH); 
      digitalWrite(lledPin, HIGH); 
      delay(250);             
      digitalWrite(rledPin, LOW);
      digitalWrite(lledPin, LOW);
      delay(250);             
      digitalWrite(rledPin, HIGH); 
      digitalWrite(lledPin, HIGH); 
      delay(250);             
      digitalWrite(rledPin, LOW);
      digitalWrite(lledPin, LOW);
      delay(250);             
      digitalWrite(rledPin, HIGH); 
      digitalWrite(lledPin, HIGH); 
      delay(250);             
      digitalWrite(rledPin, LOW);
      digitalWrite(lledPin, LOW);
    }
    
    if(mode == 6) {
      digitalWrite(rledPin, HIGH); 
      digitalWrite(lledPin, HIGH); 
      delay(100);             
      digitalWrite(rledPin, LOW);
      digitalWrite(lledPin, LOW);
      delay(100);             
      digitalWrite(rledPin, HIGH); 
      digitalWrite(lledPin, HIGH); 
      delay(100);             
      digitalWrite(rledPin, LOW);
      digitalWrite(lledPin, LOW);
      delay(100);             
      digitalWrite(rledPin, HIGH); 
      digitalWrite(lledPin, HIGH); 
      delay(100);             
      digitalWrite(rledPin, LOW);
      digitalWrite(lledPin, LOW);
      
    }
    if(mode == 7) {
      digitalWrite(lledPin, HIGH); 
      delay(100);             
      digitalWrite(lledPin, LOW);
      delay(100);             
      digitalWrite(rledPin, HIGH); 
      delay(100);             
      digitalWrite(rledPin, LOW);
      delay(100);             
      digitalWrite(lledPin, HIGH); 
      delay(100);             
      digitalWrite(lledPin, LOW);
      delay(100);             
      digitalWrite(rledPin, HIGH); 
      delay(100);             
      digitalWrite(rledPin, LOW);
      delay(100);             
      digitalWrite(lledPin, HIGH); 
      delay(100);             
      digitalWrite(lledPin, LOW);
      delay(100);             
      digitalWrite(rledPin, HIGH); 
      delay(100);             
      digitalWrite(rledPin, LOW);
    }
    if(mode == 8) {
      digitalWrite(lledPin, HIGH); 
      delay(100);             
      digitalWrite(lledPin, LOW);
      delay(100);             
      digitalWrite(lledPin, HIGH); 
      delay(100);             
      digitalWrite(lledPin, LOW);
      delay(100);             
      digitalWrite(lledPin, HIGH); 
      delay(100);             
      digitalWrite(lledPin, LOW);
    }
    if(mode == 9) {
      digitalWrite(rledPin, HIGH); 
      delay(100);             
      digitalWrite(rledPin, LOW);
      delay(100);             
      digitalWrite(rledPin, HIGH); 
      delay(100);             
      digitalWrite(rledPin, LOW);
      delay(100);             
      digitalWrite(rledPin, HIGH); 
      delay(100);             
      digitalWrite(rledPin, LOW);
    }
  } 
  
  if (buttonState > 600 && buttonState < 750) {  
    delay(400);
    
    knobValue = analogRead(knobPin); 


      digitalWrite(lledPin, HIGH); 
      digitalWrite(rledPin, HIGH); 
      delay(100);             
      digitalWrite(lledPin, LOW);
      digitalWrite(rledPin, LOW);
      
    if(mode == 0) {
     if(ystate == 0) {
        EEPROM.write(10, knobValue / 4 );
      } else {
        EEPROM.write(11, knobValue / 4 );
      }
    }
    
    if(mode == 1) {
     if(ystate == 0) {
        EEPROM.write(20, knobValue / 4 );
      } else {
        EEPROM.write(21, knobValue / 4 );
      }
    }
    
    if(mode == 2) {
     if(ystate == 0) {
        EEPROM.write(30, knobValue / 4 );
      } else {
        EEPROM.write(31, knobValue / 4 );
      }
    }
    
    if(mode == 3) {
     if(ystate == 0) {
        EEPROM.write(40, knobValue / 4 );
      } else {
        EEPROM.write(41, knobValue / 4 );
      }
    }
    
    if(mode == 4) {
     if(ystate == 0) {
        EEPROM.write(50, knobValue / 4 );
      } else {
        EEPROM.write(51, knobValue / 4 );
      }
    }
    
    if(mode == 5) {
     if(ystate == 0) {
        EEPROM.write(60, knobValue / 4 );
      } else {
        EEPROM.write(61, knobValue / 4 );
      }
    }
  }
  
  if (buttonState > 750 && buttonState < 900) {  
    ystate = 0;
  }
  
  if(ystate == 0) {
    digitalWrite(tledPin, HIGH); 
  }  


  if(ystate == 1) {
    digitalWrite(tledPin, LOW); 
  }  
  
  rtrigValue = analogRead(rtrigPin);
  ltrigValue = analogRead(ltrigPin);
  
  if(mode == 0) {
    int p1 = EEPROM.read(10) * 4; 
    int s1 = EEPROM.read(11) * 4;
    
    analogWrite(ltrigPinout, 0);
    
    if (rtrigValue < 465) {
      analogWrite(rtrigPinout, 0); 
      delay(40);
      analogWrite(rtrigPinout, 255);
      
      if(ystate == 0) {
        delValue = p1;
      } else {
        delValue = s1;
      }
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         delValue = 0; 
      }
      delay(delValue/5); 
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         delValue = 0; 
      }
      delay(delValue/5); 
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         delValue = 0; 
      }
      delay(delValue/5); 
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         delValue = 0; 
      }
      delay(delValue/5); 
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         delValue = 0; 
      }
      delay(delValue/5); 
      
    } else {
    analogWrite(rtrigPinout, 255);
    }
  }
  
  if(mode == 1) {
    int p2 = EEPROM.read(20) * 4; 
    int s2 = EEPROM.read(21) * 4;
    
    analogWrite(ltrigPinout, 0);
    
    if (rtrigValue < 465) {
      analogWrite(rtrigPinout, 0); 
      delay(40);
      analogWrite(rtrigPinout, 255);
      
      if(ystate == 0) {
        delValue = p2;
      } else {
        delValue = s2;
      }
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         delValue = 0; 
      }
      delay(delValue/5); 
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         delValue = 0; 
      }
      delay(delValue/5); 
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         delValue = 0; 
      }
      delay(delValue/5); 
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         delValue = 0; 
      }
      delay(delValue/5); 
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         delValue = 0; 
      }
      delay(delValue/5); 
      
    } else {
    analogWrite(rtrigPinout, 255);
    }
  }
  
  if(mode == 2) {
    int p3 = EEPROM.read(30) * 4; 
    int s3 = EEPROM.read(31) * 4;
    
    analogWrite(ltrigPinout, 0);
    
    if (rtrigValue < 465) {
      analogWrite(rtrigPinout, 0); 
      delay(40);
      analogWrite(rtrigPinout, 255);
      
      if(ystate == 0) {
        delValue = p3;
      } else {
        delValue = s3;
      }
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         delValue = 0; 
      }
      delay(delValue/5); 
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         delValue = 0; 
      }
      delay(delValue/5); 
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         delValue = 0; 
      }
      delay(delValue/5); 
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         delValue = 0; 
      }
      delay(delValue/5); 
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         delValue = 0; 
      }
      delay(delValue/5); 
      
    } else {
    analogWrite(rtrigPinout, 255);
    }
  }
  
  if(mode == 3) {
    int p4 = EEPROM.read(40) * 4; 
    int s4 = EEPROM.read(41) * 4;
    
    analogWrite(ltrigPinout, 0);
    
    if (rtrigValue < 465) {
      analogWrite(rtrigPinout, 0); 
      delay(40);
      analogWrite(rtrigPinout, 255);
      
      if(ystate == 0) {
        delValue = p4;
      } else {
        delValue = s4;
      }
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         delValue = 0; 
      }
      delay(delValue/5); 
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         delValue = 0; 
      }
      delay(delValue/5); 
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         delValue = 0; 
      }
      delay(delValue/5); 
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         delValue = 0; 
      }
      delay(delValue/5); 
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         delValue = 0; 
      }
      delay(delValue/5); 
      
    } else {
    analogWrite(rtrigPinout, 255);
    }
  }
  
  if(mode == 4) {
    int p5 = EEPROM.read(50) * 4; 
    int s5 = EEPROM.read(51) * 4;
    
    analogWrite(ltrigPinout, 0);
    
    if (rtrigValue < 465) {
      analogWrite(rtrigPinout, 0); 
      delay(40);
      analogWrite(rtrigPinout, 255);
      
      if(ystate == 0) {
        delValue = p5;
      } else {
        delValue = s5;
      }
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         delValue = 0; 
      }
      delay(delValue/5); 
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         delValue = 0; 
      }
      delay(delValue/5); 
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         delValue = 0; 
      }
      delay(delValue/5); 
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         delValue = 0; 
      }
      delay(delValue/5); 
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         delValue = 0; 
      }
      delay(delValue/5); 
      
    } else {
    analogWrite(rtrigPinout, 255);
    }
  }
  
  if(mode == 5) {
    int p6 = EEPROM.read(60) * 4; 
    int s6 = EEPROM.read(61) * 4;
    
    analogWrite(ltrigPinout, 0);
    
    if (rtrigValue < 465) {
      analogWrite(rtrigPinout, 0); 
      delay(40);
      analogWrite(rtrigPinout, 255);
      
      if(ystate == 0) {
        delValue = p6;
      } else {
        delValue = s6;
      }
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         delValue = 0; 
      }
      delay(delValue/5); 
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         delValue = 0; 
      }
      delay(delValue/5); 
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         delValue = 0; 
      }
      delay(delValue/5); 
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         delValue = 0; 
      }
      delay(delValue/5); 
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         delValue = 0; 
      }
      delay(delValue/5); 
      
    } else {
    analogWrite(rtrigPinout, 255);
    }
  }
  
  if(mode == 6) {
    if (rtrigValue < 465) {
      knobValue = analogRead(knobPin); 
      
      analogWrite(rtrigPinout, 0); 
      analogWrite(ltrigPinout, 255); 
      delay(40);
      analogWrite(rtrigPinout, 255);
      analogWrite(ltrigPinout, 0);
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         knobValue = 0; 
      }
      delay(knobValue/5); 
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         knobValue = 0; 
      }
      delay(knobValue/5); 
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         knobValue = 0; 
      }
      delay(knobValue/5); 
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         knobValue = 0; 
      }
      delay(knobValue/5); 
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         knobValue = 0; 
      }
      delay(knobValue/5); 
      
    } else {
    analogWrite(rtrigPinout, 255);
    analogWrite(ltrigPinout, 0);
    }
  }
  
  if(mode == 7) {
    if (rtrigValue < 465) {
      knobValue = analogRead(knobPin); 
      
      analogWrite(rtrigPinout, 0); 
      delay(40);
      analogWrite(rtrigPinout, 255);
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         knobValue = 0; 
      }
      delay(knobValue/5); 
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         knobValue = 0; 
      }
      delay(knobValue/4); 
      
      analogWrite(ltrigPinout, 255); 
      delay(40);
      analogWrite(ltrigPinout, 0);
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         knobValue = 0; 
      }
      delay(knobValue/4); 
      
      rtrigValue = analogRead(rtrigPin); 
      if (rtrigValue < 1) {
         knobValue = 0; 
      }
      delay(knobValue/4); 
    
    } else {
    analogWrite(rtrigPinout, 255);
    analogWrite(ltrigPinout, 0);
    }
  }
  
  if(mode == 8) {
    analogWrite(rtrigPinout, 255);
    
    if (ltrigValue < 655) {
      knobValue = analogRead(knobPin); 
      
      analogWrite(ltrigPinout, 255); 
      delay(40);
      analogWrite(ltrigPinout, 0);
      
      ltrigValue = analogRead(ltrigPin); 
      if (ltrigValue < 1) {
         knobValue = 0; 
      }
      delay(knobValue/5); 
      
      ltrigValue = analogRead(ltrigPin); 
      if (ltrigValue < 1) {
         knobValue = 0; 
      }
      delay(knobValue/5); 
      
      ltrigValue = analogRead(ltrigPin); 
      if (ltrigValue < 1) {
         knobValue = 0; 
      }
      delay(knobValue/5); 
      
      ltrigValue = analogRead(ltrigPin); 
      if (ltrigValue < 1) {
         knobValue = 0; 
      }
      delay(knobValue/5); 
      
      ltrigValue = analogRead(ltrigPin); 
      if (ltrigValue < 1) {
         knobValue = 0; 
      }
      delay(knobValue/5); 
      
    } else {
    analogWrite(ltrigPinout, 0);
   }
  }
  
   if(mode == 9) { 
    analogWrite(ltrigPinout, 0);
    
    if (rtrigValue < 465) {
      knobValue = analogRead(knobPin); 
      
      analogWrite(rtrigPinout, 0); 
      delay(40);
      analogWrite(rtrigPinout, 255);
      delay(knobValue/5);
      analogWrite(rtrigPinout, 0); 
      delay(40);
      analogWrite(rtrigPinout, 255);
      delay(knobValue/5);
      analogWrite(rtrigPinout, 0); 
      delay(40);
      analogWrite(rtrigPinout, 255);
      delay(knobValue/5);
      analogWrite(rtrigPinout, 0); 
      delay(40);
      analogWrite(rtrigPinout, 255);
      delay(knobValue/5);
      analogWrite(rtrigPinout, 0); 
      delay(40);
      analogWrite(rtrigPinout, 255);
      delay(knobValue/5);
      analogWrite(rtrigPinout, 0); 
      delay(40);
      analogWrite(rtrigPinout, 255);
      delay(800);
    } else {
    analogWrite(rtrigPinout, 0);
    }
   }
}



MORE DOCUMENTATION COMING SOON!


http://hlt.media.mit.edu/?p=1695





NEW MOD COMING SOON-ALL PRO GAMERS WILL HAVE TO HAVE IT! IT IS A COMPLETELY NEW IDEA, NEVER SEEN BEFORE. STAY TUNED. 
-SHAWN ;)