Topic permanente di programmazione newbie

Beh, il compilatore ha ragione. O char o byte, mica puoi dichiararlo di 2 tipi diversi XD
E poi hai invertito le dimensioni dell'array, nel tuo modo vuoi creare un array di 3 elementi da 20 caratteri l'uno, a te serve l'opposto, quindi:

byte signature [20] [3] = { {0x1E,0x95,0x0F},
{0x1E,0x93,0x0D},
{0x1E,0x91,0x0A},
{0x1E,0x93,0x0C}
};