He aquí un claro ejemplo de algo mal codificado:
const PROGMEM String K_TV_DEC = "1/";
Lo correcto es usar
const PROGMEM char K_TV_DEC[] = "1/";
Y luego usar la extracción rara de PROGMEM
strcpy_P( _temp, (char *)pgm_read_word( &( TABLA[ INDICE ] ) ) );
// --- Poco más o menos
Bueno, pues resulta que:
const PROGMEM String K_TV_DEC = "1/";
Funciona perfectamente en Arduino DUE y hasta que compilé en UNO no me dí cuenta del error, luego el Arduino DUE permite usar strings en PROGMEM y luego simplemente haces
const PROGMEM String K_TV_DEC = "1/";
String mola;
mola = K_TV_DEC + "500";
Y funciona