HI Dannix,
Never too late
I had some time shortage.
I could test after Bruno cleaned two code lines and now the display starts in the menu and not returns to the usermneu screen after 3 seconds.
For the software key calls I use this code, but not working in void loop.
// NAVIGATION MANAGEMENT & DRAWING ON LCD. NOT BLOCKING has to be the first in the void loop
 menu.draw();
// ++++ Buttons 10 in total ++++++
 buttonValue = analogRead(0); // read the input pin 0
 // internal 20K ohm pullup is enabled on analog pin 0 (54).
Â
 int navMenu(){ //called by menwiz.draw()
 }
 if(buttonValue >= 920 and buttonValue <= 930 )
 {
  MW_BTU //Up button
  //digitalWrite(led7Pin, HIGH);
  delay (200); // 910
 }
  else if(buttonValue >= 820 and buttonValue <= 835)
 {
  MW_BTC // Confirm button
  //digitalWrite(led7Pin, HIGH);
  delay (200);// 827
 }
  else if(buttonValue >= 725 and buttonValue <= 740)
 {
  MW_BTD //Down button
  //digitalWrite(led7Pin, HIGH);
  delay (200); // 731
 }
  else if(buttonValue >= 630 and buttonValue <= 645)
 {
  MW_BTE //Escape button
  //digitalWrite(led7Pin, HIGH);
  delay (200); // 637
 }
  else if(buttonValue >= 535 and buttonValue <= 550)
 {
  switchpointYValue = switchpointYValue - stepsQValue;
  delay (200); // 542
 }
  else if(buttonValue >= 440 and buttonValue <= 455)
 {Â
  switchpointXValue = switchpointXValue - stepsQValue;
  delay (200); //446
 }
  else if(buttonValue >= 340 and buttonValue <= 355)
 {Â
  speedstartValue = speedstartValue - stepsQValue;
  delay (200); //347
 }
  else if(buttonValue >= 235 and buttonValue <= 250)
 {Â
  speedstartValue = speedstartValue + stepsQValue;
  delay (200); //241
 }
  else if(buttonValue >= 125 and buttonValue <= 140)
 {Â
  switchpointXValue = switchpointXValue + stepsQValue;
  delay (200); //131
 }
  else if(buttonValue >= 5 and buttonValue <= 20)
 {Â
  switchpointYValue = switchpointYValue + stepsQValue;
  delay (200); //13
 }
  else
  MW_BTNULL