custom keypad protocol