Hello Oliver. It turned out that M2_LABELP not implemented until the end of LiquidCrystal: -In m2ghnlc.cpp no “case M2_GFX_MSG_DRAW_TEXT_P” extern "C" uint8_t m2_gh_nlc(m2_gfx_arg_p arg) { switch(arg->msg) { case M2_GFX_MSG_INIT: case M2_GFX_MSG_START: … case M2_GFX_MSG_DRAW_VERTICAL_SCROLL_BAR: } } -I have done so: #define SIZE_BUFFER 20; static char buffer[SIZE_BUFFER + 1]; buffer[0] = ''; … case M2_GFX_MSG_DRAW_TEXT_P: if (strlen_P(arg->s) > SIZE_BUFFER) strlcpy_P(buffer, arg->s, SIZE_BUFFER+1); else strcpy_P(buffer, arg->s); m2_gh_lc_set_cursor(arg->x, arg->y); m2_lc_ptr->print(buffer); return 0; … -Maybe it's too ugly but it works. As I understand it to X2LMENU can not use “const char x[] PROGMEM"?
Hello Oliver. It turned out that M2_LABELP not implemented until the end of LiquidCrystal: -In m2ghnlc.cpp no “case M2_GFX_MSG_DRAW_TEXT_P” extern "C" uint8_t m2_gh_nlc(m2_gfx_arg_p arg) { switch(arg->msg) { case M2_GFX_MSG_INIT: case M2_GFX_MSG_START: … case M2_GFX_MSG_DRAW_VERTICAL_SCROLL_BAR: } } -I have done so: #define SIZE_BUFFER 20; static char buffer[SIZE_BUFFER + 1]; buffer[0] = ''; … case M2_GFX_MSG_DRAW_TEXT_P: if (strlen_P(arg->s) > SIZE_BUFFER) strlcpy_P(buffer, arg->s, SIZE_BUFFER+1); else strcpy_P(buffer, arg->s); m2_gh_lc_set_cursor(arg->x, arg->y); m2_lc_ptr->print(buffer); return 0; … -Maybe it's too ugly but it works. As I understand it to X2LMENU can not use “const char x[] PROGMEM"?