Skorn,
Thanks for the info, I actually started writing it all out using the M bits then switched and started using the bitWrite function to write directly to the N byte array. I also did utilize the KeypadEvent Function to speed up the whole thing. I was really wanting to remove the need to assign a character and if possible just assign the N bit directly. For now this works and is plenty fast for my needs. Here is the updated code...
//Runs when a keypad button is pressed
void keypadEvent(KeypadEvent key){
switch (kpd.getState()){
case PRESSED:
switch (key){
//First Row
case 'y': bitWrite(n[0],0,1);break;
case 'z': bitWrite(n[0],1,1);break;
case '1': bitWrite(n[0],2,1);break;
case '2': bitWrite(n[0],3,1);break;
case '3': bitWrite(n[1],0,1);break;
case '4': bitWrite(n[1],1,1);break;
case '5': bitWrite(n[1],2,1);break;
case '6': bitWrite(n[1],3,1);break;
case 'U': bitWrite(n[2],0,1);break;
case 'V': bitWrite(n[2],1,1);break;
//Second Row
case 'q': bitWrite(n[2],2,1);break;
case 'r': bitWrite(n[2],3,1);break;
case 's': bitWrite(n[3],0,1);break;
case 't': bitWrite(n[3],1,1);break;
case 'u': bitWrite(n[3],2,1);break;
case 'v': bitWrite(n[3],3,1);break;
case 'w': bitWrite(n[4],0,1);break;
case 'x': bitWrite(n[4],1,1);break;
case 'M': bitWrite(n[4],2,1);break;
case 'N': bitWrite(n[4],3,1);break;
//3rd Row
case 'i': bitWrite(n[5],0,1);break;
case 'j': bitWrite(n[5],1,1);break;
case 'k': bitWrite(n[5],2,1);break;
case 'l': bitWrite(n[5],3,1);break;
case 'm': bitWrite(n[6],0,1);break;
case 'n': bitWrite(n[6],1,1);break;
case 'o': bitWrite(n[6],2,1);break;
case 'p': bitWrite(n[6],3,1);break;
case 'E': bitWrite(n[7],0,1);break;
case 'F': bitWrite(n[7],1,1);break;
//4th ROW
case 'a': bitWrite(n[7],2,1);break;
case 'b': bitWrite(n[7],3,1);break;
case 'c': bitWrite(n[8],0,1);break;
case 'd': bitWrite(n[8],1,1);break;
case 'e': bitWrite(n[8],2,1);break;
case 'f': bitWrite(n[8],3,1);break;
case 'g': bitWrite(n[9],0,1);break;
case 'h': bitWrite(n[9],1,1);break;
case '7': bitWrite(n[9],2,1);break;
case '8': bitWrite(n[9],3,1);break;
//Function Keys
case 'X': bitWrite(n[10],0,1);break;
case 'Q': bitWrite(n[10],1,1);break;
case 'O': bitWrite(n[10],2,1);break;
case 'H': bitWrite(n[10],3,1);break;
case 'A': bitWrite(n[11],0,1);break;
case '9': bitWrite(n[11],1,1);break;
//Keypad
case 'D': bitWrite(n[11],2,1);break;
case 'C': bitWrite(n[11],3,1);break;
case 'B': bitWrite(n[12],0,1);break;
case 'L': bitWrite(n[12],1,1);break;
case 'K': bitWrite(n[12],2,1);break;
case 'J': bitWrite(n[12],3,1);break;
case 'T': bitWrite(n[13],0,1);break;
case 'S': bitWrite(n[13],1,1);break;
case 'R': bitWrite(n[13],2,1);break;
case '#': bitWrite(n[13],3,1);break;
case '!': bitWrite(n[14],0,1);break;
case 'Z': bitWrite(n[14],1,1);break;
//Arrows
case '0': bitWrite(n[14],2,1);break;
case 'G': bitWrite(n[14],3,1);break;
case 'P': bitWrite(n[15],0,1);break;
case 'I': bitWrite(n[15],1,1);break;
case 'W': bitWrite(n[15],2,1);break;
case 'Y': bitWrite(n[15],3,1);break;
}
break;
case RELEASED:
switch (key){
//ROW 1
case 'y': bitWrite(n[0],0,0);break;
case 'z': bitWrite(n[0],1,0);break;
case '1': bitWrite(n[0],2,0); break;
case '2': bitWrite(n[0],3,0);break;
case '3': bitWrite(n[1],0,0);break;
case '4': bitWrite(n[1],1,0);break;
case '5': bitWrite(n[1],2,0);break;
case '6': bitWrite(n[1],3,0);break;
case 'U': bitWrite(n[2],0,0);break;
case 'V': bitWrite(n[2],1,0);break;
//Row 2
case 'q': bitWrite(n[2],2,0);break;
case 'r': bitWrite(n[2],3,0);break;
case 's': bitWrite(n[3],0,0);break;
case 't': bitWrite(n[3],1,0);break;
case 'u': bitWrite(n[3],2,0);break;
case 'v': bitWrite(n[3],3,0);break;
case 'w': bitWrite(n[4],0,0);break;
case 'x': bitWrite(n[4],1,0);break;
case 'M': bitWrite(n[4],2,0);break;
case 'N': bitWrite(n[4],3,0);break;
//row 3
case 'i': bitWrite(n[5],2,0);break;
case 'j': bitWrite(n[5],3,0);break;
case 'k': bitWrite(n[5],0,0);break;
case 'l': bitWrite(n[5],1,0);break;
case 'm': bitWrite(n[6],2,0);break;
case 'n': bitWrite(n[6],3,0);break;
case 'o': bitWrite(n[6],0,0);break;
case 'p': bitWrite(n[6],1,0);break;
case 'E': bitWrite(n[7],2,0);break;
case 'F': bitWrite(n[7],3,0);break;
//Row 4
case 'a': bitWrite(n[7],2,0);break;
case 'b': bitWrite(n[7],3,0);break;
case 'c': bitWrite(n[8],0,0);break;
case 'd': bitWrite(n[8],1,0);break;
case 'e': bitWrite(n[8],2,0);break;
case 'f': bitWrite(n[8],3,0);break;
case 'g': bitWrite(n[9],0,0);break;
case 'h': bitWrite(n[9],1,0);break;
case '7': bitWrite(n[9],2,0);break;
case '8': bitWrite(n[9],3,0);break;
//Function Keys
case 'X': bitWrite(n[10],0,0);break;
case 'Q': bitWrite(n[10],1,0);break;
case 'O': bitWrite(n[10],2,0);break;
case 'H': bitWrite(n[10],3,0);break;
case 'A': bitWrite(n[11],0,0);break;
case '9': bitWrite(n[11],1,0);break;
//Keypad
case 'D': bitWrite(n[11],2,0);break;
case 'C': bitWrite(n[11],3,0);break;
case 'B': bitWrite(n[12],0,0);break;
case 'L': bitWrite(n[12],1,0);break;
case 'K': bitWrite(n[12],2,0);break;
case 'J': bitWrite(n[12],3,0);break;
case 'T': bitWrite(n[13],0,0);break;
case 'S': bitWrite(n[13],1,0);break;
case 'R': bitWrite(n[13],2,0);break;
case '#': bitWrite(n[13],3,0);break;
case '!': bitWrite(n[14],0,0);break;
case 'Z': bitWrite(n[14],1,0);break;
//Arrows
case '0': bitWrite(n[14],2,0);break;
case 'G': bitWrite(n[14],3,0);break;
case 'P': bitWrite(n[15],0,0);break;
case 'I': bitWrite(n[15],1,0);break;
case 'W': bitWrite(n[15],2,0);break;
case 'Y': bitWrite(n[15],3,0);break;
}
break;
}
}