Sometimes, if you turn up the warning level to "ALL", you will get warning that point to programming mistakes. Maybe one of these warnings is significant:
/Users/john/Documents/Arduino/sketch_may03a/sketch_may03a.ino: In function 'void ChangeBluetoothCheck()':
/Users/john/Documents/Arduino/sketch_may03a/sketch_may03a.ino:286:49: warning: embedded '\0' in format [-Wformat-contains-nul]
sprintf(at_cmd, "AT+NAME%s\0", bluetoothName);
^
/Users/john/Documents/Arduino/sketch_may03a/sketch_may03a.ino:298:12: warning: unused variable 'c' [-Wunused-variable]
char c = BTSerial.read();
^
/Users/john/Documents/Arduino/sketch_may03a/sketch_may03a.ino:311:42: warning: embedded '\0' in format [-Wformat-contains-nul]
sprintf(at_pin_cmd, "AT+PIN%s\0", pin);
^
/Users/john/Documents/Arduino/sketch_may03a/sketch_may03a.ino:324:12: warning: unused variable 'c' [-Wunused-variable]
char c = BTSerial.read();
^
/Users/john/Documents/Arduino/sketch_may03a/sketch_may03a.ino: In function 'void Check_Protocol(char*)':
/Users/john/Documents/Arduino/sketch_may03a/sketch_may03a.ino:666:48: warning: invalid conversion from 'const char*' to 'char' [-fpermissive]
char key_2[2] = {HexToChar(inStr + 2), "\0"};
^
/Users/john/Documents/Arduino/sketch_may03a/sketch_may03a.ino:670:27: warning: invalid conversion from 'char*' to 'uint8_t {aka unsigned char}' [-fpermissive]
myKeyboard.press(key_2);
^
In file included from /Users/john/Documents/Arduino/sketch_may03a/sketch_may03a.ino:9:0:
/Users/john/Documents/Arduino/libraries/Keyboard/src/Keyboard.h:106:10: note: initializing argument 1 of 'size_t Keyboard_::press(uint8_t)'
size_t press(uint8_t k);
^
/Users/john/Documents/Arduino/sketch_may03a/sketch_may03a.ino:678:18: warning: invalid conversion from 'char' to 'const char*' [-fpermissive]
Print(inStr[0]);
^
/Users/john/Documents/Arduino/sketch_may03a/sketch_may03a.ino:825:6: note: initializing argument 1 of 'void Print(const char*)'
void Print(const char *inStr)
^
/Users/john/Documents/Arduino/sketch_may03a/sketch_may03a.ino:756:41: warning: embedded '\0' in format [-Wformat-contains-nul]
sprintf(bluetoothName, "%s\0", inStr);
^
/Users/john/Documents/Arduino/sketch_may03a/sketch_may03a.ino:765:31: warning: embedded '\0' in format [-Wformat-contains-nul]
sprintf(pin, "%s\0", inStr);
^
/Users/john/Documents/Arduino/sketch_may03a/sketch_may03a.ino: In function 'int SubStrIndex(const char*, const char*)':
/Users/john/Documents/Arduino/sketch_may03a/sketch_may03a.ino:797:30: warning: invalid conversion from 'char*' to 'int' [-fpermissive]
int ptr = strstr(str, sfind);
^
/Users/john/Documents/Arduino/sketch_may03a/sketch_may03a.ino: In function 'bool IsCmd(const char*, const char*)':
/Users/john/Documents/Arduino/sketch_may03a/sketch_may03a.ino:805:38: warning: invalid conversion from 'const char*' to 'char*' [-fpermissive]
return (StrStartsWith(str, cmdStart) && StrEndsWith(str, ",end"));
^
/Users/john/Documents/Arduino/sketch_may03a/sketch_may03a.ino:813:6: note: initializing argument 1 of 'bool StrStartsWith(char*, const char*)'
bool StrStartsWith(char* str, const char* desiredStart)
^
/Users/john/Documents/Arduino/sketch_may03a/sketch_may03a.ino:805:66: warning: invalid conversion from 'const char*' to 'char*' [-fpermissive]
return (StrStartsWith(str, cmdStart) && StrEndsWith(str, ",end"));
^
/Users/john/Documents/Arduino/sketch_may03a/sketch_may03a.ino:818:6: note: initializing argument 1 of 'bool StrEndsWith(char*, const char*)'
bool StrEndsWith(char* str, const char* desiredEnd)
^
/Users/john/Documents/Arduino/sketch_may03a/sketch_may03a.ino: In function 'int GetKeyIndex(byte, byte*)':
/Users/john/Documents/Arduino/sketch_may03a/sketch_may03a.ino:891:41: warning: invalid conversion from 'byte* {aka unsigned char*}' to 'const char*' [-fpermissive]
for (byte i = 0; i < strlen(char_array); i++)
^
In file included from /Users/john/Library/Arduino15/packages/arduino/hardware/avr/1.6.21/cores/arduino/Arduino.h:25:0,
from sketch/sketch_may03a.ino.cpp:1:
/Users/john/Library/Arduino15/packages/arduino/tools/avr-gcc/4.9.2-atmel3.5.4-arduino2/avr/include/string.h:399:15: note: initializing argument 1 of 'size_t strlen(const char*)'
extern size_t strlen(const char *) __ATTR_PURE__;
^
/Users/john/Documents/Arduino/sketch_may03a/sketch_may03a.ino: In function 'void SetNewCharEncoding(char*)':
/Users/john/Documents/Arduino/sketch_may03a/sketch_may03a.ino:1008:44: warning: embedded '\0' in format [-Wformat-contains-nul]
sprintf(encodingName, "%s\0", inStr);
^
/Users/john/Documents/Arduino/sketch_may03a/sketch_may03a.ino:1033:39: warning: narrowing conversion of '*(inStr + ((sizetype)offset))' from 'char' to 'byte {aka unsigned char}' inside { } [-Wnarrowing]
byte strValBuff[3] = {inStr[offset], inStr[offset + 1], '\0'};
^
/Users/john/Documents/Arduino/sketch_may03a/sketch_may03a.ino:1033:58: warning: narrowing conversion of '*(inStr + (((sizetype)offset) + 1u))' from 'char' to 'byte {aka unsigned char}' inside { } [-Wnarrowing]
byte strValBuff[3] = {inStr[offset], inStr[offset + 1], '\0'};
^
/Users/john/Documents/Arduino/sketch_may03a/sketch_may03a.ino:1035:87: warning: invalid conversion from 'byte* {aka unsigned char*}' to 'char*' [-fpermissive]
Encoding[encodingFactor][offset / 2] = (byte)strtoul((char*)strtok(strValBuff, " "), NULL, 16); //(((byte)inStr[offset]) * 16) + (byte)inStr[offset+1];
^
In file included from /Users/john/Library/Arduino15/packages/arduino/hardware/avr/1.6.21/cores/arduino/Arduino.h:25:0,
from sketch/sketch_may03a.ino.cpp:1:
/Users/john/Library/Arduino15/packages/arduino/tools/avr-gcc/4.9.2-atmel3.5.4-arduino2/avr/include/string.h:576:14: note: initializing argument 1 of 'char* strtok(char*, const char*)'
extern char *strtok(char *, const char *);
^
Sketch uses 18406 bytes (64%) of program storage space. Maximum is 28672 bytes.
Global variables use 1814 bytes (70%) of dynamic memory, leaving 746 bytes for local variables. Maximum is 2560 bytes.