[SOLVED] Adapting MenuBackend library to use strings in PROGMEM

There are two things you're going to have to tackle. First, all your string definitions are going to have to be changed to place them in program space:

  :
#define TEXT_FINISHED                          "fertig"
  :

becomes

#include <avr/pgmspace.h
  
  :
#define TEXT_FINISHED                          PSTR("fertig")
  :

Then, when you go to send the string to the LCD, your're going to have to have a jacket function to lcd.print() that understands the PROGMEM string.

void lcd_print_P(const PROGMEM char *s)
{
  uint8_t c;
  while ((c = pgm_read_byte_near(s++)) != 0)
     lcd.print(c);
}

And where you write to the LCD, thats going to use your spiffy new jacket function:

    clear_second_line();
    lcd.setCursor(0,1);
    lcd.print(TEXT_PICTURETAKEN);

becomes

    clear_second_line();
    lcd.setCursor(0,1);
    lcd_print_P(TEXT_PICTURETAKEN);

This is a rough approximation, but should give you a reasonable idea what needs doing.