MENWIZ: una libreria per creare menu su LCD

ehm, aggiungere una linea al menu, è quello che volevo (ma forse tu no :~)
Ovviamente devi creare una funzione Step dove metetreai il tuo codice per evitare l'errore in compilazione sulla linea

s2->addVar(MW_ACTION,Step);

quindi scrivi qualcosa di simile
int Step(){
//....
}

Quando sei nel menu definito da:

    s2->addVar(MW_AUTO_INT,&sp,0,100,1);

puoi cambiare il valore della variabile sp, ma per lanciare l'azione (menu "Step") devi ritornare indietro di un livello perchè sia il menù con la tua variabile sia il menu "Step" sono 'figli dello stesso padre' (il menu root puntato da r1).
Però puoi anche provare a usare l'opzione collapsed menu, che forse fa quello che vuoi tu:

 _menu *r,*s1,*s2;

                                      // initialize the menu object ( 4 x rows x 20 colums LCD)
  menu.begin(&lcd,16,2);              //initialize the menwiz menu object passing the lcd object and the colums and rows params 
  menu.addUsrNav(navMenu,4);
  MW_navbtn=4;                        // force 4 or 6 buttons mode for menu navigation -> MW_navbtn=4; or MW_navbtn=6;

  //create the menu tree
  r=menu.addMenu(MW_ROOT,NULL,F("MAIN MENU"));   //create a root menu at first (required)

  //---------------  
  s1=menu.addMenu(MW_SUBMENU,r,F("SAW"));            //add a submenu node 1 to the root menu (control the heigh of my Saw)
     s1->setBehaviour(MW_MENU_COLLAPSED,true);        // fa vedere tutte le opzioni di submenu in una stessa schermata

     s2=menu.addMenu(MW_VAR,s1,F("ABS Height"));      //add a terminal node in the menu tree (that is "variable"); (move at a certain mm height)
     s2->addVar(MW_AUTO_INT,&sp,0,100,1);                /int type, fd binded variable, rage 0-100, step 1
     
     s2=menu.addMenu(MW_VAR,s1,F("Step"));
     s2->addVar(MW_ACTION,Step);
     s2->setBehaviour(MW_ACTION_CONFIRM,false);

L'opzione MW_MENU_COLLAPSED funziona però solo con 6 buttons (perchè altrimenti non saprei come gestire l'interazione con l'utente).
Il codice di cui sopra dovrebbe fare quello che vuoi (vedere nella stessa schermata la variabile e l'azione, poter modificare con il tasto destro/sinistro il valore della variabile e lanciare direttamente l'azione dalla stessa schermata). Ovviamente il codice di cui sopra pur girando su un lcd 2x16 è indicato su un lcd 4x20.