LiquidMenu using I2C lcd errors

/*
 * LiquidMenu library - focus_menu.ino
 *
 * This example demonstrates how to customize the focus indicator.
 *
 * The default focus indicator is an arrow symbol shown on the right of the
 * focused line. The focus indicator position can be changed per line to be
 * shown on the right, on the left or in a specified position. The focus
 * symbol can also be changed, per position.
 * In this example a custom focus symbol is defined (uint8_t rFocus[8]). Then
 * it is configured to be the right focus indicator symbol using the
 * bool LiquidMenu::set_focusSymbol(Position position, uint8_t symbol[8]) method.
 * The focus position for the different lines is configured using the
 * bool set_focusPosition(Position position, uint8_t column = 0, uint8_t row = 0)
 * method. If the "position" is "Position::CUSTOM", the column and row parameters
 * must be specified. The focus position can be specified for a single line, for
 * the whole screen, for the whole menu or for the whole menu system using the
 * respective objects.
 *
 * The circuit:
 * https://github.com/VasilKalchev/LiquidMenu/blob/master/examples/focus_menu/F_focus_menu.png
 * - LCD RS pin to Arduino pin 12
 * - LCD E pin to Arduino pin 11
 * - LCD D4 pin to Arduino pin 5
 * - LCD D5 pin to Arduino pin 4
 * - LCD D6 pin to Arduino pin 3
 * - LCD D7 pin to Arduino pin 2
 * - LCD R/W pin to ground
 * - LCD VSS pin to ground
 * - LCD VDD pin to 5V
 * - 10k ohm potentiometer: ends to 5V and ground, wiper to LCD V0
 * - 150 ohm resistor from 5V to LCD Anode
 * - LCD Cathode to ground
 * - ----
 * - Button (left) to Arduino pin A0 and ground
 * - Button (right) to Arduino pin 7 and ground
 * - Button (enter) to Arduino pin 10 and ground
 *
 * Created July 24, 2016
 * by Vasil Kalchev
 *
 * https://github.com/VasilKalchev/LiquidMenu
 * http://omerk.github.io/lcdchargen/ - for creating custom indicator symbol
 *
 */
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <LiquidMenu.h>
#include "Button.h"

// Pin mapping for the display
LiquidCrystal_I2C lcd(0x27, 20, 4);

// Button objects instantiation
const bool pullup = true;
Button left(10, pullup);
Button right(11, pullup);
Button enter(12, pullup);

LiquidLine welcome_line1(1, 0, "LiquidMenu ", LIQUIDMENU_VERSION);
LiquidLine welcome_line2(1, 1, "Focus example");
LiquidScreen welcome_screen(welcome_line1, welcome_line2);

LiquidLine leftFocus_line(1, 0, "Left focus");
LiquidLine rightFocus_line(1, 1, "Right focus");
LiquidScreen leftright_screen(leftFocus_line, rightFocus_line);

LiquidLine customFocus_line(1, 0, "Custom focus");
LiquidScreen customFocus_screen(customFocus_line);

LiquidLine leftF1_line(6, 0, "Left");
LiquidLine leftF2_line(6, 1, "focus");
LiquidScreen leftF12_screen(leftF1_line, leftF2_line);

LiquidMenu menu(lcd);

// Checks all the buttons.
void buttonsCheck() {
  if (right.check() == LOW) {
    menu.next_screen();
  }
  if (left.check() == LOW) {
    menu.previous_screen();
  }
  if (enter.check() == LOW) {
    // Switches focus to the next line.
    menu.switch_focus();
  }
}

// Indicator symbol definition, it will change the default symbol for the right focus.
// http://omerk.github.io/lcdchargen/
uint8_t rFocus[8] = {
  0b00000,
  0b00000,
  0b00100,
  0b01110,
  0b00100,
  0b00000,
  0b00000,
  0b00000
};

// Blank function, it is attached to the lines so that they become focusable.
void func() {
  return;
}

void setup() {
  Serial.begin(250000);

  lcd.begin(16, 2);

    // Changes the right focus symbol.
  menu.set_focusSymbol(Position::RIGHT, rFocus);

    // Sets the focus position for this line to be on the left.
  leftFocus_line.set_focusPosition(Position::LEFT);
  rightFocus_line.set_focusPosition(Position::RIGHT);
  // 'CUSTOM' focus position needs column and row parameters.
  customFocus_line.set_focusPosition(Position::CUSTOM, 15, 0);
  // The focus position can be changed for the whole screen or
  // menu at once. 'CUSTOM' position cannot be set because it
  // needs individual coordinates.
  leftF12_screen.set_focusPosition(Position::LEFT);

    // Attaching a function to a line makes the line focusable.
  leftFocus_line.attach_function(1, func);
  rightFocus_line.attach_function(1, func);
  customFocus_line.attach_function(1, func);
  leftF1_line.attach_function(1, func);
  leftF2_line.attach_function(1, func);

  menu.add_screen(welcome_screen);
  menu.add_screen(leftright_screen);
  menu.add_screen(customFocus_screen);
  menu.add_screen(leftright_screen);
  menu.add_screen(leftF12_screen);

  menu.update();
}

void loop() {
  buttonsCheck();
}

Need to wait 5min to post the error msg, not understanding how to edit config.h in liquidmenu to enable i2c

[/code]

I have a I2C 20x4 lcd I’d like to test out, I editted the config.h file as follows to allow I2c.

/**
@file
Configuration file for LiquidMenu library.

Contains global constants the configure the size of some of the arrays
used in the library, also configures the debugging messages.
*/

#pragma once

/*!
 * @name "LiquidCrystal" libraries enumeration.
 * These defines are used for determining the compiler messages.
 * @{
 */
#define LiquidCrystal_LIBRARY (1)
#define LiquidCrystal_I2C_LIBRARY (2)
//!@}


// Select a "LiquidCrystal" library:
// ---------------------------------

/*!
 * @name Select a "LiquidCrystal" library
 * @{
 */

/*!
 * @name Arduino's parallel "LiquidCrystal" library
 * @{
 */
#define LIQUIDMENU_LIBRARY LiquidCrystal_LIBRARY
#include <LiquidCrystal.h>
#define DisplayClass LiquidCrystal
//!@}

/*!
 * @name I2C library
 * @see https://github.com/johnrickman/LiquidCrystal_I2C
 * @{
 */
 #define LIQUIDMENU_LIBRARY LiquidCrystal_I2C_LIBRARY
 #include <LiquidCrystal_I2C.h>
 #define DisplayClass LiquidCrystal_I2C
//!@}

/*!
 * @name Some other library
 * @{
 */
// #include <LIBRARY_HEADER.h>
// #define DisplayClass LIBRARY_CONSTRUCTOR
//!@}
//!@}

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


/// Configures the number of available variables per line.
const uint8_t MAX_VARIABLES = 5; ///< @note Default: 5

/// Configures the number of available functions per line.
const uint8_t MAX_FUNCTIONS = 8; ///< @note Default: 8

/// Configures the number of available lines per screen.
const uint8_t MAX_LINES = 12; ///< @note Default: 12

/// Configures the number of available screens per menu.
const uint8_t MAX_SCREENS = 14; ///< @note Default: 14

/// Configures the number of available menus per menus system.
const uint8_t MAX_MENUS = 8; ///< @note Default: 8

// Turns the debugging messages on or off.
#define LIQUIDMENU_DEBUG false ///< @note Default: false

Arduino: 1.8.9 (Windows 10), Board: “Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)”

In file included from C:\Users\Bob\Documents\Arduino\LiquidMenFocusTest\LiquidMenFocusTest.ino:48:0:

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:54:123: note: #pragma message: LiquidMenu: Selected ‘LiquidCrystal’ (parallel) library. Edit ‘LiquidMenu_config.h’ file to change it.

pragma message (“LiquidMenu: Selected ‘LiquidCrystal’ (parallel) library. Edit ‘LiquidMenu_config.h’ file to change it.”)

^

LiquidMenFocusTest:75:20: error: no matching function for call to ‘LiquidMenu::LiquidMenu(LiquidCrystal_I2C&)’

LiquidMenu menu(lcd);

^

In file included from C:\Users\Bob\Documents\Arduino\LiquidMenFocusTest\LiquidMenFocusTest.ino:48:0:

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:806:3: note: candidate: LiquidMenu::LiquidMenu(LiquidCrystal&, LiquidScreen&, LiquidScreen&, LiquidScreen&, LiquidScreen&, uint8_t)

LiquidMenu(DisplayClass &liquidCrystal, LiquidScreen &liquidScreen1,

^

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:806:3: note: candidate expects 6 arguments, 1 provided

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:792:3: note: candidate: LiquidMenu::LiquidMenu(LiquidCrystal&, LiquidScreen&, LiquidScreen&, LiquidScreen&, uint8_t)

LiquidMenu(DisplayClass &liquidCrystal, LiquidScreen &liquidScreen1,

^

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:792:3: note: candidate expects 5 arguments, 1 provided

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:780:3: note: candidate: LiquidMenu::LiquidMenu(LiquidCrystal&, LiquidScreen&, LiquidScreen&, uint8_t)

LiquidMenu(DisplayClass &liquidCrystal, LiquidScreen &liquidScreen1,

^

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:780:3: note: candidate expects 4 arguments, 1 provided

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:769:3: note: candidate: LiquidMenu::LiquidMenu(LiquidCrystal&, LiquidScreen&, uint8_t)

LiquidMenu(DisplayClass &liquidCrystal, LiquidScreen &liquidScreen,

^

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:769:3: note: candidate expects 3 arguments, 1 provided

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:760:3: note: candidate: LiquidMenu::LiquidMenu(LiquidCrystal&, uint8_t)

LiquidMenu(DisplayClass &liquidCrystal, uint8_t startingScreen = 1);

^

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:760:3: note: no known conversion for argument 1 from ‘LiquidCrystal_I2C’ to ‘LiquidCrystal&’

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:744:7: note: candidate: constexpr LiquidMenu::LiquidMenu(const LiquidMenu&)

class LiquidMenu {

^

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:744:7: note: no known conversion for argument 1 from ‘LiquidCrystal_I2C’ to ‘const LiquidMenu&’

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:744:7: note: candidate: constexpr LiquidMenu::LiquidMenu(LiquidMenu&&)

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:744:7: note: no known conversion for argument 1 from ‘LiquidCrystal_I2C’ to ‘LiquidMenu&&’

Multiple libraries were found for “LiquidCrystal_I2C.h”
Used: C:\Users\Bob\Documents\Arduino\libraries\LiquidCrystal_I2C
Not used: C:\Users\Bob\Documents\Arduino\libraries\Arduino-LiquidCrystal-I2C-library-master
Multiple libraries were found for “LiquidMenu.h”
Used: C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master
Not used: C:\Program Files (x86)\Arduino\libraries\LiquidMenu-master
exit status 1
no matching function for call to ‘LiquidMenu::LiquidMenu(LiquidCrystal_I2C&)’

This report would have more information with
“Show verbose output during compilation”
option enabled in File → Preferences.

I’m not understanding how to adjust the files to use a I2C LCD, can anyone point me to what I need to edit please?

changed the variable lcd in liquidmenu to LiquidCrystal_I2C

I changed the config.h integers for I2C is 1 and liqcrystal is 1.

Arduino: 1.8.9 (Windows 10), Board: “Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)”

In file included from C:\Users\Bob\Documents\Arduino\LiquidMenFocusTest\LiquidMenFocusTest.ino:48:0:

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:54:123: note: #pragma message: LiquidMenu: Selected ‘LiquidCrystal’ (parallel) library. Edit ‘LiquidMenu_config.h’ file to change it.

pragma message (“LiquidMenu: Selected ‘LiquidCrystal’ (parallel) library. Edit ‘LiquidMenu_config.h’ file to change it.”)

^

C:\Users\Bob\Documents\Arduino\LiquidMenFocusTest\LiquidMenFocusTest.ino: In function ‘void buttonsCheck()’:

LiquidMenFocusTest:80:10: error: request for member ‘next_screen’ in ‘menu’, which is of non-class type ‘LiquidMenu(LiquidCrystal_I2C)’

menu.next_screen();

^

LiquidMenFocusTest:83:10: error: request for member ‘previous_screen’ in ‘menu’, which is of non-class type ‘LiquidMenu(LiquidCrystal_I2C)’

menu.previous_screen();

^

LiquidMenFocusTest:87:10: error: request for member ‘switch_focus’ in ‘menu’, which is of non-class type ‘LiquidMenu(LiquidCrystal_I2C)’

menu.switch_focus();

^

C:\Users\Bob\Documents\Arduino\LiquidMenFocusTest\LiquidMenFocusTest.ino: In function ‘void setup()’:

LiquidMenFocusTest:115:8: error: request for member ‘set_focusSymbol’ in ‘menu’, which is of non-class type ‘LiquidMenu(LiquidCrystal_I2C)’

menu.set_focusSymbol(Position::RIGHT, rFocus);

^

LiquidMenFocusTest:134:8: error: request for member ‘add_screen’ in ‘menu’, which is of non-class type ‘LiquidMenu(LiquidCrystal_I2C)’

menu.add_screen(welcome_screen);

^

LiquidMenFocusTest:135:8: error: request for member ‘add_screen’ in ‘menu’, which is of non-class type ‘LiquidMenu(LiquidCrystal_I2C)’

menu.add_screen(leftright_screen);

^

LiquidMenFocusTest:136:8: error: request for member ‘add_screen’ in ‘menu’, which is of non-class type ‘LiquidMenu(LiquidCrystal_I2C)’

menu.add_screen(customFocus_screen);

^

LiquidMenFocusTest:137:8: error: request for member ‘add_screen’ in ‘menu’, which is of non-class type ‘LiquidMenu(LiquidCrystal_I2C)’

menu.add_screen(leftright_screen);

^

LiquidMenFocusTest:138:8: error: request for member ‘add_screen’ in ‘menu’, which is of non-class type ‘LiquidMenu(LiquidCrystal_I2C)’

menu.add_screen(leftF12_screen);

^

LiquidMenFocusTest:140:8: error: request for member ‘update’ in ‘menu’, which is of non-class type ‘LiquidMenu(LiquidCrystal_I2C)’

menu.update();

^

C:\Users\Bob\Documents\Arduino\LiquidMenFocusTest\LiquidMenFocusTest.ino: In function ‘LiquidMenu menu(LiquidCrystal_I2C)’:

LiquidMenFocusTest:149:21: error: no matching function for call to ‘LiquidMenu::LiquidMenu()’

return LiquidMenu();

^

In file included from C:\Users\Bob\Documents\Arduino\LiquidMenFocusTest\LiquidMenFocusTest.ino:48:0:

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:806:3: note: candidate: LiquidMenu::LiquidMenu(LiquidCrystal&, LiquidScreen&, LiquidScreen&, LiquidScreen&, LiquidScreen&, uint8_t)

LiquidMenu(DisplayClass &liquidCrystal, LiquidScreen &liquidScreen1,

^

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:806:3: note: candidate expects 6 arguments, 0 provided

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:792:3: note: candidate: LiquidMenu::LiquidMenu(LiquidCrystal&, LiquidScreen&, LiquidScreen&, LiquidScreen&, uint8_t)

LiquidMenu(DisplayClass &liquidCrystal, LiquidScreen &liquidScreen1,

^

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:792:3: note: candidate expects 5 arguments, 0 provided

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:780:3: note: candidate: LiquidMenu::LiquidMenu(LiquidCrystal&, LiquidScreen&, LiquidScreen&, uint8_t)

LiquidMenu(DisplayClass &liquidCrystal, LiquidScreen &liquidScreen1,

^

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:780:3: note: candidate expects 4 arguments, 0 provided

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:769:3: note: candidate: LiquidMenu::LiquidMenu(LiquidCrystal&, LiquidScreen&, uint8_t)

LiquidMenu(DisplayClass &liquidCrystal, LiquidScreen &liquidScreen,

^

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:769:3: note: candidate expects 3 arguments, 0 provided

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:760:3: note: candidate: LiquidMenu::LiquidMenu(LiquidCrystal&, uint8_t)

LiquidMenu(DisplayClass &liquidCrystal, uint8_t startingScreen = 1);

^

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:760:3: note: candidate expects 2 arguments, 0 provided

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:744:7: note: candidate: constexpr LiquidMenu::LiquidMenu(const LiquidMenu&)
class LiquidMenu {
C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:744:7: note: candidate expects 1 argument, 0 provided
Multiple libraries were found for “LiquidCrystal_I2C.h”
C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:744:7: note: candidate: constexpr LiquidMenu::LiquidMenu(LiquidMenu&&)
Used: C:\Users\Bob\Documents\Arduino\libraries\LiquidCrystal_I2C
Not used: C:\Users\Bob\Documents\Arduino\libraries\Arduino-LiquidCrystal-I2C-library-master
Multiple libraries were found for “LiquidMenu.h”
C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:744:7: note: candidate expects 1 argument, 0 provided
Used: C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master
Not used: C:\Program Files (x86)\Arduino\libraries\LiquidMenu-master
exit status 1
request for member ‘next_screen’ in ‘menu’, which is of non-class type ‘LiquidMenu(LiquidCrystal_I2C)’

If I change LiquidMenu menu from (lcd) to (liquidmenu_i2c) I get the following error message:

Arduino: 1.8.9 (Windows 10), Board: "Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

In file included from C:\Users\Bob\Documents\Arduino\LiquidMenFocusTest\LiquidMenFocusTest.ino:48:0:

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:54:123: note: #pragma message: LiquidMenu: Selected 'LiquidCrystal' (parallel) library. Edit 'LiquidMenu_config.h' file to change it.

pragma message ("LiquidMenu: Selected 'LiquidCrystal' (parallel) library. Edit 'LiquidMenu_config.h' file to change it.")

^

C:\Users\Bob\Documents\Arduino\LiquidMenFocusTest\LiquidMenFocusTest.ino: In function 'void buttonsCheck()':

LiquidMenFocusTest:80:10: error: request for member 'next_screen' in 'menu', which is of non-class type 'LiquidMenu(LiquidCrystal_I2C)'

menu.next_screen();

^

LiquidMenFocusTest:83:10: error: request for member 'previous_screen' in 'menu', which is of non-class type 'LiquidMenu(LiquidCrystal_I2C)'

menu.previous_screen();

^

LiquidMenFocusTest:87:10: error: request for member 'switch_focus' in 'menu', which is of non-class type 'LiquidMenu(LiquidCrystal_I2C)'

menu.switch_focus();

^

C:\Users\Bob\Documents\Arduino\LiquidMenFocusTest\LiquidMenFocusTest.ino: In function 'void setup()':

LiquidMenFocusTest:115:8: error: request for member 'set_focusSymbol' in 'menu', which is of non-class type 'LiquidMenu(LiquidCrystal_I2C)'

menu.set_focusSymbol(Position::RIGHT, rFocus);

^

LiquidMenFocusTest:134:8: error: request for member 'add_screen' in 'menu', which is of non-class type 'LiquidMenu(LiquidCrystal_I2C)'

menu.add_screen(welcome_screen);

^

LiquidMenFocusTest:135:8: error: request for member 'add_screen' in 'menu', which is of non-class type 'LiquidMenu(LiquidCrystal_I2C)'

menu.add_screen(leftright_screen);

^

LiquidMenFocusTest:136:8: error: request for member 'add_screen' in 'menu', which is of non-class type 'LiquidMenu(LiquidCrystal_I2C)'

menu.add_screen(customFocus_screen);

^

LiquidMenFocusTest:137:8: error: request for member 'add_screen' in 'menu', which is of non-class type 'LiquidMenu(LiquidCrystal_I2C)'

menu.add_screen(leftright_screen);

^

LiquidMenFocusTest:138:8: error: request for member 'add_screen' in 'menu', which is of non-class type 'LiquidMenu(LiquidCrystal_I2C)'

menu.add_screen(leftF12_screen);

^

LiquidMenFocusTest:140:8: error: request for member 'update' in 'menu', which is of non-class type 'LiquidMenu(LiquidCrystal_I2C)'

menu.update();

^

Multiple libraries were found for "LiquidCrystal_I2C.h"
Used: C:\Users\Bob\Documents\Arduino\libraries\LiquidCrystal_I2C
Not used: C:\Users\Bob\Documents\Arduino\libraries\Arduino-LiquidCrystal-I2C-library-master
Multiple libraries were found for "LiquidMenu.h"
Used: C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master
Not used: C:\Program Files (x86)\Arduino\libraries\LiquidMenu-master
exit status 1
request for member 'next_screen' in 'menu', which is of non-class type 'LiquidMenu(LiquidCrystal_I2C)'

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

I cant have the class lcd in the parenthesis with LiquidCrystal_I2C further derailing the program

There seems to be a error in how the library is built, the I2C example doesn't compile and produces a error and always the same error no matter what changes are done to the config.h

I am trying to test the I2c example and have compile errors.

Arduino: 1.8.9 (Windows 10), Board: "Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

In file included from C:\Program Files (x86)\Arduino\libraries\LiquidMenu-master\examples\I_I2C_menu\I_I2C_menu.ino:32:0:

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:54:123: note: #pragma message: LiquidMenu: Selected 'LiquidCrystal' (parallel) library. Edit 'LiquidMenu_config.h' file to change it.

pragma message ("LiquidMenu: Selected 'LiquidCrystal' (parallel) library. Edit 'LiquidMenu_config.h' file to change it.")

^

I_I2C_menu:87:20: error: no matching function for call to 'LiquidMenu::LiquidMenu(LiquidCrystal_I2C&)'

LiquidMenu menu(lcd);

^

In file included from C:\Program Files (x86)\Arduino\libraries\LiquidMenu-master\examples\I_I2C_menu\I_I2C_menu.ino:32:0:

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:806:3: note: candidate: LiquidMenu::LiquidMenu(LiquidCrystal&, LiquidScreen&, LiquidScreen&, LiquidScreen&, LiquidScreen&, uint8_t)

LiquidMenu(DisplayClass &liquidCrystal, LiquidScreen &liquidScreen1,

^

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:806:3: note: candidate expects 6 arguments, 1 provided

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:792:3: note: candidate: LiquidMenu::LiquidMenu(LiquidCrystal&, LiquidScreen&, LiquidScreen&, LiquidScreen&, uint8_t)

LiquidMenu(DisplayClass &liquidCrystal, LiquidScreen &liquidScreen1,

^

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:792:3: note: candidate expects 5 arguments, 1 provided

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:780:3: note: candidate: LiquidMenu::LiquidMenu(LiquidCrystal&, LiquidScreen&, LiquidScreen&, uint8_t)

LiquidMenu(DisplayClass &liquidCrystal, LiquidScreen &liquidScreen1,

^

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:780:3: note: candidate expects 4 arguments, 1 provided

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:769:3: note: candidate: LiquidMenu::LiquidMenu(LiquidCrystal&, LiquidScreen&, uint8_t)

LiquidMenu(DisplayClass &liquidCrystal, LiquidScreen &liquidScreen,

^

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:769:3: note: candidate expects 3 arguments, 1 provided

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:760:3: note: candidate: LiquidMenu::LiquidMenu(LiquidCrystal&, uint8_t)

LiquidMenu(DisplayClass &liquidCrystal, uint8_t startingScreen = 1);

^

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:760:3: note: no known conversion for argument 1 from 'LiquidCrystal_I2C' to 'LiquidCrystal&'

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:744:7: note: candidate: constexpr LiquidMenu::LiquidMenu(const LiquidMenu&)

class LiquidMenu {

^

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:744:7: note: no known conversion for argument 1 from 'LiquidCrystal_I2C' to 'const LiquidMenu&'

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:744:7: note: candidate: constexpr LiquidMenu::LiquidMenu(LiquidMenu&&)

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:744:7: note: no known conversion for argument 1 from 'LiquidCrystal_I2C' to 'LiquidMenu&&'

Multiple libraries were found for "LiquidCrystal_I2C.h"
Used: C:\Users\Bob\Documents\Arduino\libraries\LiquidCrystal_I2C
Not used: C:\Users\Bob\Documents\Arduino\libraries\Arduino-LiquidCrystal-I2C-library-master
Multiple libraries were found for "LiquidMenu.h"
Used: C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master
Not used: C:\Program Files (x86)\Arduino\libraries\LiquidMenu-master
exit status 1
no matching function for call to 'LiquidMenu::LiquidMenu(LiquidCrystal_I2C&)'

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

There is no place in the config that has i2c as false or true, I just deleted the // and reapplied // to the 1st liquidcrystal section.

Could someone post a correctly configured config for I2C please?

Please post a link (using the chain links icon on the forum toolbar to make it clickable) to where you downloaded the LiquidMenu library from. Or if you installed it using Library Manger (Sketch > Include Library > Manage Libraries in the Arduino IDE or Libraries > Library Manager in the Arduino Web Editor) then say so and state the full name of the library.

keyboardcowboy:
Multiple libraries were found for "LiquidCrystal_I2C.h"
Used: C:\Users\Bob\Documents\Arduino\libraries\LiquidCrystal_I2C
Not used: C:\Users\Bob\Documents\Arduino\libraries\Arduino-LiquidCrystal-I2C-library-master
Multiple libraries were found for "LiquidMenu.h"
Used: C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master
Not used: C:\Program Files (x86)\Arduino\libraries\LiquidMenu-master

It looks like you've been taking the "shotgun" approach to library installation, which is bound to cause you problems in the end. I recommend that you delete any of those libraries you don't need.

It looks like you have installed the LiquidMenu library in two locations. C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master is the correct place to install the library. C:\Program Files (x86)\Arduino\libraries\LiquidMenu-master is not the correct place to install libraries. The reason is that anything you install to the Arduino IDE installation folder will be lost whenever you update to a new version of the Arduino IDE. So I recommend that you delete C:\Program Files (x86)\Arduino\libraries\LiquidMenu-master and avoid installing libraries to that location in the future.

keyboardcowboy:
There is no place in the config that has i2c as false or true, I just deleted the // and reapplied // to the 1st liquidcrystal section.

That's very vague. Please provide a detailed description of the modifications you made to the library. Also, keep in mind that you had two installations of the library, but only one of them was in use:

keyboardcowboy:
Multiple libraries were found for "LiquidMenu.h"
Used: C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master
Not used: C:\Program Files (x86)\Arduino\libraries\LiquidMenu-master

If you modified the library at C:\Program Files (x86)\Arduino\libraries\LiquidMenu-master then it had no effect because that library isn't being used.

I've merged your cross posts @keyboardcowboy.

Cross posting is against the rules of the forum. The reason is that duplicate posts can waste the time of the people trying to help. Someone might spend 15 minutes writing a detailed answer on this thread, without knowing that someone else already did the same in the other thread.

Repeated cross posting will result in a suspension from the forum.

In the future, please take some time to pick the forum section that best suits the topic of your question and then only post once to that forum section. This is basic forum etiquette, as explained in the sticky "How to use this forum - please read." post you will find at the top of every forum section. It contains a lot of other useful information. Please read it.

Thanks in advance for your cooperation.

Thank you for the input, will delete the non required extra locations.

C:\Program Files (x86)\Arduino\libraries\LiquidMenu-master\src

is where I am editing the config.

/**
@file
Configuration file for LiquidMenu library.

Contains global constants the configure the size of some of the arrays
used in the library, also configures the debugging messages.
*/

#pragma once

/*!
 * @name "LiquidCrystal" libraries enumeration.
 * These defines are used for determining the compiler messages.
 * @{
 */
#define LiquidCrystal_LIBRARY (1)
#define LiquidCrystal_I2C_LIBRARY (2)
//!@}


// Select a "LiquidCrystal" library:
// ---------------------------------

/*!
 * @name Select a "LiquidCrystal" library
 * @{
 */

/*!
 * @name Arduino's parallel "LiquidCrystal" library
 * @{
 */
#define LIQUIDMENU_LIBRARY LiquidCrystal_LIBRARY
#include <LiquidCrystal.h>
#define DisplayClass LiquidCrystal
//!@}

/*!
 * @name I2C library
 * @see https://github.com/johnrickman/LiquidCrystal_I2C
 * @{
 */
// #define LIQUIDMENU_LIBRARY LiquidCrystal_I2C_LIBRARY
// #include <LiquidCrystal_I2C.h>
// #define DisplayClass LiquidCrystal_I2C
//!@}

/*!
 * @name Some other library
 * @{
 */
// #include <LIBRARY_HEADER.h>
// #define DisplayClass LIBRARY_CONSTRUCTOR
//!@}
//!@}

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


/// Configures the number of available variables per line.
const uint8_t MAX_VARIABLES = 5; ///< @note Default: 5

/// Configures the number of available functions per line.
const uint8_t MAX_FUNCTIONS = 8; ///< @note Default: 8

/// Configures the number of available lines per screen.
const uint8_t MAX_LINES = 12; ///< @note Default: 12

/// Configures the number of available screens per menu.
const uint8_t MAX_SCREENS = 14; ///< @note Default: 14

/// Configures the number of available menus per menus system.
const uint8_t MAX_MENUS = 8; ///< @note Default: 8

// Turns the debugging messages on or off.
#define LIQUIDMENU_DEBUG false ///< @note Default: false

Thats my current config, wont edit it till further input is provided.

There is no where in the config that says i2c = true or false like the readme states.

is where I downloaded my source.

C:\Users\Bob\Documents\Arduino\libraries\LiquidCrystal_I2C\LiquidCrystal_I2C.cpp:311:55: warning: unused parameter 'row' [-Wunused-parameter]

 void LiquidCrystal_I2C::draw_horizontal_graph(uint8_t row, uint8_t column, uint8_t len,  uint8_t pixel_col_end){}

                                                       ^

C:\Users\Bob\Documents\Arduino\libraries\LiquidCrystal_I2C\LiquidCrystal_I2C.cpp:311:68: warning: unused parameter 'column' [-Wunused-parameter]

 void LiquidCrystal_I2C::draw_horizontal_graph(uint8_t row, uint8_t column, uint8_t len,  uint8_t C:\Users\Bob\Documents\Arduino\libraries\LiquidCrystal_I2C\LiquidCrystal_I2C.cpp:311:84: warning: unused parameter 'len' [-Wunused-parameter]

 void LiquidCrystal_I2C::draw_horizontal_graph(uint8_t row, uint8_t column, uint8_t len,  uint8_t pixel_col_end){}

                                                                                    ^

C:\Users\Bob\Documents\Arduino\libraries\LiquidCrystal_I2C\LiquidCrystal_I2C.cpp:311:98: warning: unused parameter 'pixel_col_end' [-Wunused-parameter]

 void LiquidCrystal_I2C::draw_horizontal_graph(uint8_t row, uint8_t column, uint8_t len,  uint8_t pixel_col_end){}

                                                                                                  ^

C:\Users\Bob\Documents\Arduino\libraries\LiquidCrystal_I2C\LiquidCrystal_I2C.cpp:312:53: warning: unused parameter 'row' [-Wunused-parameter]

 void LiquidCrystal_I2C::draw_vertical_graph(uint8_t row, uint8_t column, uint8_t len,  uint8_t pixel_row_end){}

                                                     ^

C:\Users\Bob\Documents\Arduino\libraries\LiquidCrystal_I2C\LiquidCrystal_I2C.cpp:312:66: warning: unused parameter 'column' [-Wunused-parameter]

 void LiquidCrystal_I2C::draw_vertical_graph(uint8_t row, uint8_t column, uint8_t len,  uint8_t pixel_row_end){}

                                                                  ^

C:\Users\Bob\Documents\Arduino\libraries\LiquidCrystal_I2C\LiquidCrystal_I2C.cpp:312:82: warning: unused parameter 'len' [-Wunused-parameter]

 void LiquidCrystal_I2C::draw_vertical_graph(uint8_t row, uint8_t column, uint8_t len,  uint8_t pixel_row_end){}

                                                                                  ^

C:\Users\Bob\Documents\Arduino\libraries\LiquidCrystal_I2C\LiquidCrystal_I2C.cpp:312:96: warning: unused parameter 'pixel_row_end' [-Wunused-parameter]

 void LiquidCrystal_I2C::draw_vertical_graph(uint8_t row, uint8_t column, uint8_t len,  uint8_t pixel_row_end){}

                                                                                                ^

C:\Users\Bob\Documents\Arduino\libraries\LiquidCrystal_I2C\LiquidCrystal_I2C.cpp:313:45: warning: unused parameter 'new_val' [-Wunused-parameter]

 void LiquidCrystal_I2C::setContrast(uint8_t new_val){}

                                             ^

Compiling library "Wire"
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -Wall -Wextra -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10809 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\standard" "-IC:\\Users\\Bob\\Documents\\Arduino\\libraries\\LiquidMenu-master\\src" "-IC:\\Users\\Bob\\Documents\\Arduino\\libraries\\LiquidCrystal_I2C" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src" "-IC:\\Users\\Bob\\Documents\\Arduino\\libraries\\Button" "C:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src\\Wire.cpp" -o "C:\\Users\\Bob\\AppData\\Local\\Temp\\arduino_build_985523\\libraries\\Wire\\Wire.cpp.o"
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-gcc" -c -g -Os -Wall -Wextra -std=gnu11 -ffunction-sections -fdata-sections -MMD -flto -fno-fat-lto-objects -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10809 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\standard" "-IC:\\Users\\Bob\\Documents\\Arduino\\libraries\\LiquidMenu-master\\src" "-IC:\\Users\\Bob\\Documents\\Arduino\\libraries\\LiquidCrystal_I2C" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src" "-IC:\\Users\\Bob\\Documents\\Arduino\\libraries\\Button" "C:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src\\utility\\twi.c" -o "C:\\Users\\Bob\\AppData\\Local\\Temp\\arduino_build_985523\\libraries\\Wire\\utility\\twi.c.o"
Compiling library "Button"
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -Wall -Wextra -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10809 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\standard" "-IC:\\Users\\Bob\\Documents\\Arduino\\libraries\\LiquidMenu-master\\src" "-IC:\\Users\\Bob\\Documents\\Arduino\\libraries\\LiquidCrystal_I2C" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src" "-IC:\\Users\\Bob\\Documents\\Arduino\\libraries\\Button" "C:\\Users\\Bob\\Documents\\Arduino\\libraries\\Button\\Button.cpp" -o "C:\\Users\\Bob\\AppData\\Local\\Temp\\arduino_build_985523\\libraries\\Button\\Button.cpp.o"
In file included from C:\Users\Bob\Documents\Arduino\libraries\Button\Button.cpp:21:0:

C:\Users\Bob\Documents\Arduino\libraries\Button\Button.h:5:18: error: expected ')' before 'pin'

  Button (uint8_t pin, bool pullup = false, uint16_t debounceDelay = 50)

                  ^

C:\Users\Bob\Documents\Arduino\libraries\Button\Button.cpp:93:1: error: expected '}' at end of input

 }

 ^

C:\Users\Bob\Documents\Arduino\libraries\Button\Button.cpp:93:1: error: expected unqualified-id at end of input

Using library LiquidMenu-master at version 1.5.0 in folder: C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master 
Using library LiquidCrystal_I2C at version 1.1.1 in folder: C:\Users\Bob\Documents\Arduino\libraries\LiquidCrystal_I2C 
Using library Wire at version 1.0 in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire 
Using library Button in folder: C:\Users\Bob\Documents\Arduino\libraries\Button (legacy)
exit status 1
Error compiling for board Arduino/Genuino Uno.

According to that I take it I should delete the buttons library and reinstall the library?

Arduino: 1.8.9 (Windows 10), Board: "Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\Bob\Documents\Arduino\libraries -fqbn=arduino:avr:mega:cpu=atmega2560 -vid-pid=0000_0000 -ide-version=10809 -build-path C:\Users\Bob\AppData\Local\Temp\arduino_build_985523 -warnings=all -build-cache C:\Users\Bob\AppData\Local\Temp\arduino_cache_719607 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc-5.4.0-atmel3.6.1-arduino2.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude-6.3.0-arduino14.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA-1.2.1.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\Bob\Documents\Arduino\sketch_aug27a\sketch_aug27a.ino
C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\Bob\Documents\Arduino\libraries -fqbn=arduino:avr:mega:cpu=atmega2560 -vid-pid=0000_0000 -ide-version=10809 -build-path C:\Users\Bob\AppData\Local\Temp\arduino_build_985523 -warnings=all -build-cache C:\Users\Bob\AppData\Local\Temp\arduino_cache_719607 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc-5.4.0-atmel3.6.1-arduino2.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude-6.3.0-arduino14.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA-1.2.1.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\Bob\Documents\Arduino\sketch_aug27a\sketch_aug27a.ino
Using board 'mega' from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr
Using core 'arduino' from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr
Build options changed, rebuilding all
Detecting libraries used...
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10809 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "C:\Users\Bob\AppData\Local\Temp\arduino_build_985523\sketch\sketch_aug27a.ino.cpp" -o nul
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10809 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src" "C:\Users\Bob\AppData\Local\Temp\arduino_build_985523\sketch\sketch_aug27a.ino.cpp" -o nul
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10809 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src" "-IC:\Users\Bob\Documents\Arduino\libraries\LiquidCrystal_I2C" "C:\Users\Bob\AppData\Local\Temp\arduino_build_985523\sketch\sketch_aug27a.ino.cpp" -o nul
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10809 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src" "-IC:\Users\Bob\Documents\Arduino\libraries\LiquidCrystal_I2C" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src" "C:\Users\Bob\AppData\Local\Temp\arduino_build_985523\sketch\sketch_aug27a.ino.cpp" -o nul
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10809 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src" "-IC:\Users\Bob\Documents\Arduino\libraries\LiquidCrystal_I2C" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src" "-IC:\Users\Bob\Documents\Arduino\libraries\Button" "C:\Users\Bob\AppData\Local\Temp\arduino_build_985523\sketch\sketch_aug27a.ino.cpp" -o nul
In file included from C:\Users\Bob\Documents\Arduino\sketch_aug27a\sketch_aug27a.ino:3:0:

C:\Users\Bob\Documents\Arduino\libraries\Button/Button.h:23:22: fatal error: WProgram.h: No such file or directory

compilation terminated.

Using library LiquidMenu-master at version 1.5.0 in folder: C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master
Using library LiquidCrystal_I2C at version 1.1.1 in folder: C:\Users\Bob\Documents\Arduino\libraries\LiquidCrystal_I2C
Using library Wire at version 1.0 in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire
Using library Button in folder: C:\Users\Bob\Documents\Arduino\libraries\Button (legacy)
exit status 1
Error compiling for board Arduino/Genuino Mega or Mega 2560.

looks like im missing WProgram.h, wherever that goes?

I changed Wprogram.h to Arduino.h on the include line in Button.h

Compiling sketch...
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -Wall -Wextra -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10809 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\mega" "-IC:\\Users\\Bob\\Documents\\Arduino\\libraries\\LiquidMenu-master\\src" "-IC:\\Users\\Bob\\Documents\\Arduino\\libraries\\LiquidCrystal_I2C" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src" "-IC:\\Users\\Bob\\Documents\\Arduino\\libraries\\Button" "C:\\Users\\Bob\\AppData\\Local\\Temp\\arduino_build_985523\\sketch\\sketch_aug27a.ino.cpp" -o "C:\\Users\\Bob\\AppData\\Local\\Temp\\arduino_build_985523\\sketch\\sketch_aug27a.ino.cpp.o"
In file included from C:\Users\Bob\Documents\Arduino\sketch_aug27a\sketch_aug27a.ino:1:0:

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master\src/LiquidMenu.h:56:122: note: #pragma message: LiquidMenu: Selected 'LiquidCrystal_I2C' (I2C) library. Edit 'LiquidMenu_config.h' file to change it.

 # pragma message ("LiquidMenu: Selected 'LiquidCrystal_I2C' (I2C) library. Edit 'LiquidMenu_config.h' file to change it.")

                                                                                                                          ^

C:\Users\Bob\Documents\Arduino\sketch_aug27a\sketch_aug27a.ino: In function 'void buttonsCheck()':

sketch_aug27a:32:13: error: 'class Button' has no member named 'check'

   if (right.check() == LOW) {

             ^

sketch_aug27a:35:12: error: 'class Button' has no member named 'check'

   if (left.check() == LOW) {

            ^

sketch_aug27a:38:13: error: 'class Button' has no member named 'check'

   if (enter.check() == LOW) {

             ^

Using library LiquidMenu-master at version 1.5.0 in folder: C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-master 
Using library LiquidCrystal_I2C at version 1.1.1 in folder: C:\Users\Bob\Documents\Arduino\libraries\LiquidCrystal_I2C 
Using library Wire at version 1.0 in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire 
Using library Button in folder: C:\Users\Bob\Documents\Arduino\libraries\Button (legacy)
exit status 1
'class Button' has no member named 'check'

https://playground.arduino.cc/Code/Button/
Is where I downloaded the current library

#include <LiquidMenu.h>
#include <LiquidCrystal_I2C.h>
#include <Button.h>

#define LOW 0x0

LiquidCrystal_I2C lcd(0x27, 20, 4);

// Button objects instantiation
const bool pullup = true;
Button left(10, pullup);
Button right(11, pullup);
Button enter(12, pullup);

LiquidLine welcome_line1(1, 0, "LiquidMenu ", LIQUIDMENU_VERSION);
LiquidLine welcome_line2(1, 1, "Focus example");
LiquidScreen welcome_screen(welcome_line1, welcome_line2);

LiquidLine leftFocus_line(1, 0, "Left focus");
LiquidLine rightFocus_line(1, 1, "Right focus");
LiquidScreen leftright_screen(leftFocus_line, rightFocus_line);

LiquidLine customFocus_line(1, 0, "Custom focus");
LiquidScreen customFocus_screen(customFocus_line);

LiquidLine leftF1_line(6, 0, "Left");
LiquidLine leftF2_line(6, 1, "focus");
LiquidScreen leftF12_screen(leftF1_line, leftF2_line);

LiquidMenu menu(lcd);

// Checks all the buttons.
void buttonsCheck() {
  if (right.isPressed() == LOW) {
    menu.next_screen();
  }
  if (left.isPressed() == LOW) {
    menu.previous_screen();
  }
  if (enter.isPressed() == LOW) {
    // Switches focus to the next line.
    menu.switch_focus();
  }
}

// Indicator symbol definition, it will change the default symbol for the right focus.
// http://omerk.github.io/lcdchargen/
uint8_t rFocus[8] = {
  0b00000,
  0b00000,
  0b00100,
  0b01110,
  0b00100,
  0b00000,
  0b00000,
  0b00000
};

// Blank function, it is attached to the lines so that they become focusable.
void func() {
  return;
}

void setup() {
  Serial.begin(250000);

  lcd.begin(16, 2);

    // Changes the right focus symbol.
  menu.set_focusSymbol(Position::RIGHT, rFocus);

    // Sets the focus position for this line to be on the left.
  leftFocus_line.set_focusPosition(Position::LEFT);
  rightFocus_line.set_focusPosition(Position::RIGHT);
  // 'CUSTOM' focus position needs column and row parameters.
  customFocus_line.set_focusPosition(Position::CUSTOM, 15, 0);
  // The focus position can be changed for the whole screen or
  // menu at once. 'CUSTOM' position cannot be set because it
  // needs individual coordinates.
  leftF12_screen.set_focusPosition(Position::LEFT);

    // Attaching a function to a line makes the line focusable.
  leftFocus_line.attach_function(1, func);
  rightFocus_line.attach_function(1, func);
  customFocus_line.attach_function(1, func);
  leftF1_line.attach_function(1, func);
  leftF2_line.attach_function(1, func);

  menu.add_screen(welcome_screen);
  menu.add_screen(leftright_screen);
  menu.add_screen(customFocus_screen);
  menu.add_screen(leftright_screen);
  menu.add_screen(leftF12_screen);

  menu.update();
}

void loop() {
  buttonsCheck();
}

I changed .check() to .isPressed() for each direction under void checkbutton. This should work right?
I checked my buttons.h file and saw there was no check() member anywhere in the file so switched to isPressed() since that is a member of the button class, but would like to know if this would work fine for each button press?

keyboardcowboy:
C:\Program Files (x86)\Arduino\libraries\LiquidMenu-master\src

is where I am editing the config.

As I explained in my previous reply, the Arduino IDE was using the other installation of the library, so any modifications you made to that copy of the library had no effect.

keyboardcowboy:
There is no where in the config that says i2c = true or false like the readme states.

It looks like they completely rewrote that file. You’re using the beta tester version of the library. If you take a look at the file in the latest release version of the library, you’ll see it does have that line:
https://github.com/VaSe7u/LiquidMenu/blob/v1.4.1/src/LiquidMenu_config.h#L12

#define I2C false ///< @note Default: false

It’s usually a bad idea to use the beta tester version of libraries when a release version is available unless you are interested in helping with the development of the library as a beta tester and possible hitting some bugs along the way. You can download the release version of the library here:
https://github.com/VaSe7u/LiquidMenu/archive/v1.4.1.zip
You will need to remove the existing installation of the library to make sure the correct version of the library is used.

If you are set on using the beta version of the library, let me know and I’ll provide instructions for how to configure it.

pert:
As I explained in my previous reply, the Arduino IDE was using the other installation of the library, so any modifications you made to that copy of the library had no effect.

[quote author=keyboardcowboy link=msg=4289259 date=1566962834
There is no where in the config that says i2c = true or false like the readme states.

It looks like they completely rewrote that file. You’re using the beta tester version of the library. If you take a look at the file in the latest release version of the library, you’ll see it does have that line:
https://github.com/VaSe7u/LiquidMenu/blob/v1.4.1/src/LiquidMenu_config.h#L12

#define I2C false ///< @note Default: false

It’s usually a bad idea to use the beta tester version of libraries when a release version is available unless you are interested in helping with the development of the library as a beta tester and possible hitting some bugs along the way. You can download the release version of the library here:
https://github.com/VaSe7u/LiquidMenu/archive/v1.4.1.zip
You will need to remove the existing installation of the library to make sure the correct version of the library is used.

If you are set on using the beta version of the library, let me know and I’ll provide instructions for how to configure it.

Ok Thank you very much, your input is greatly appreciated and extremely helpful in guiding me in getting to where I’d like to get to. You were right I was editting the wrong config.h file for liquidMenu, I wasn’t aware I was using a beta version as I think I would prefer to use a stable tested version of this library n I do appreciate the appropriate link to a release version of liquidMenu.

Also I saw that there is a button.h file under the examples that use that library in their examples. I should of probably viewed that to see if the check() member is stated anywhere in that location of button.h and if so moved it and replaced the button.h that is being used.

I am going to delete the current liquidMenu library and replace with the version you posted in the link, and set it up from there as to do my best to avoid any errors that I probably won’t have the knowledge to handle or fix.

I just checked the buttons.h file in the buttons example before deleting the library and the member check is provided there.

"C:\\Users\\Bob\\Documents\\Arduino\\libraries\\LiquidMenu-1.4.1\\src\\recognizeType.cpp" -o nul
Using cached library dependencies for file: C:\Users\Bob\Documents\Arduino\libraries\LiquidCrystal_I2C\LiquidCrystal_I2C.cpp
Using cached library dependencies for file: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.cpp
Using cached library dependencies for file: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\utility\twi.c
Using cached library dependencies for file: C:\Users\Bob\Documents\Arduino\libraries\Button\Button.cpp
Compiling sketch...
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -Wall -Wextra -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10809 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\mega" "-IC:\\Users\\Bob\\Documents\\Arduino\\libraries\\LiquidMenu-1.4.1\\src" "-IC:\\Users\\Bob\\Documents\\Arduino\\libraries\\LiquidCrystal_I2C" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src" "-IC:\\Users\\Bob\\Documents\\Arduino\\libraries\\Button" "C:\\Users\\Bob\\AppData\\Local\\Temp\\arduino_build_985523\\sketch\\sketch_aug27a.ino.cpp" -o "C:\\Users\\Bob\\AppData\\Local\\Temp\\arduino_build_985523\\sketch\\sketch_aug27a.ino.cpp.o"
In file included from C:\Users\Bob\Documents\Arduino\sketch_aug27a\sketch_aug27a.ino:1:0:

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-1.4.1\src/LiquidMenu.h:55:97: note: #pragma message: LiquidMenu: Configured for I2C. Edit 'LiquidMenu_config.h' file to change it.

 #pragma message ("LiquidMenu: Configured for I2C. Edit 'LiquidMenu_config.h' file to change it.")

                                                                                                 ^

Compiling libraries...
Compiling library "LiquidMenu-1.4.1"
 #pragma message ("LiquidMenu: Configured for I2C. Edit 'LiquidMenu_config.h' file to change it.")

                                                                                                 ^

In file included from C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-1.4.1\src\LiquidScreen.cpp:30:0:

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-1.4.1\src\LiquidMenu.h:55:97: note: #pragma message: LiquidMenu: Configured for I2C. Edit 'LiquidMenu_config.h' file to change it.

 #pragma message ("LiquidMenu: Configured for I2C. Edit 'LiquidMenu_config.h' file to change it.")

                                                                                                 ^

In file included from C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-1.4.1\src\LiquidMenu.cpp:30:0:

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-1.4.1\src\LiquidMenu.h:55:97: note: #pragma message: LiquidMenu: Configured for I2C. Edit 'LiquidMenu_config.h' file to change it.

 #pragma message ("LiquidMenu: Configured for I2C. Edit 'LiquidMenu_config.h' file to change it.")

                                                                                                 ^

In file included from C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-1.4.1\src\recognizeType.cpp:7:0:

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-1.4.1\src\LiquidMenu.h:55:97: note: #pragma message: LiquidMenu: Configured for I2C. Edit 'LiquidMenu_config.h' file to change it.

 #pragma message ("LiquidMenu: Configured for I2C. Edit 'LiquidMenu_config.h' file to change it.")

                                                                                                 ^

In file included from C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-1.4.1\src\LiquidLine.cpp:30:0:

C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-1.4.1\src\LiquidMenu.h:55:97: note: #pragma message: LiquidMenu: Configured for I2C. Edit 'LiquidMenu_config.h' file to change it.

 #pragma message ("LiquidMenu: Configured for I2C. Edit 'LiquidMenu_config.h' file to change it.")

                                                                                                 ^

Compiling library "LiquidCrystal_I2C"
Using previously compiled file: C:\Users\Bob\AppData\Local\Temp\arduino_build_985523\libraries\LiquidCrystal_I2C\LiquidCrystal_I2C.cpp.o
Compiling library "Wire"
Using previously compiled file: C:\Users\Bob\AppData\Local\Temp\arduino_build_985523\libraries\Wire\Wire.cpp.o
Using previously compiled file: C:\Users\Bob\AppData\Local\Temp\arduino_build_985523\libraries\Wire\utility\twi.c.o
Compiling library "Button"
Using previously compiled file: C:\Users\Bob\AppData\Local\Temp\arduino_build_985523\libraries\Button\Button.cpp.o
Compiling core...
Using precompiled core: C:\Users\Bob\AppData\Local\Temp\arduino_cache_719607\core\core_arduino_avr_mega_cpu_atmega2560_0c812875ac70eb4a9b385d8fb077f54c.a
Linking everything together...
C:\Users\Bob\Documents\Arduino\libraries\Button/Button.h:3:7: warning: type 'struct Button' violates one definition rule [-Wodr]

 class Button {

       ^

C:\Users\Bob\Documents\Arduino\libraries\Button\Button.h:32:7: note: a different type is defined in another translation unit

   // If this code is reached, it returns the normal state of the button.

       ^

C:\Users\Bob\Documents\Arduino\libraries\Button/Button.h:41:16: note: the first difference of corresponding definitions is field '_pin'

  const uint8_t _pin;

                ^

C:\Users\Bob\Documents\Arduino\libraries\Button\Button.h:43:13: note: a field with different name is defined in another translation unit

  bool _lastState;

             ^

"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-objcopy" -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 "C:\\Users\\Bob\\AppData\\Local\\Temp\\arduino_build_985523/sketch_aug27a.ino.elf" "C:\\Users\\Bob\\AppData\\Local\\Temp\\arduino_build_985523/sketch_aug27a.ino.eep"
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-objcopy" -O ihex -R .eeprom "C:\\Users\\Bob\\AppData\\Local\\Temp\\arduino_build_985523/sketch_aug27a.ino.elf" "C:\\Users\\Bob\\AppData\\Local\\Temp\\arduino_build_985523/sketch_aug27a.ino.hex"
Using library LiquidMenu-1.4.1 at version 1.4.0 in folder: C:\Users\Bob\Documents\Arduino\libraries\LiquidMenu-1.4.1 
Using library LiquidCrystal_I2C at version 1.1.1 in folder: C:\Users\Bob\Documents\Arduino\libraries\LiquidCrystal_I2C 
Using library Wire at version 1.0 in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire 
Using library Button in folder: C:\Users\Bob\Documents\Arduino\libraries\Button (legacy)
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-size" -A "C:\\Users\\Bob\\AppData\\Local\\Temp\\arduino_build_985523/sketch_aug27a.ino.elf"
Sketch uses 8644 bytes (3%) of program storage space. Maximum is 253952 bytes.
Global variables use 937 bytes (11%) of dynamic memory, leaving 7255 bytes for local variables. Maximum is 8192 bytes.

I replaced the liquidMenu library with the one you provided, moved the button.h from the button example folder n replaced button.h in its library, then edited the config.h setting I2C to true from false. Verified the code and compiled correctly as you can see in the output above.

I'm glad to hear it's working now. Enjoy!
Per

pert:
I’m glad to hear it’s working now. Enjoy!
Per

Wouldn’t be working this fast without your input though, and for that I thank you very much!

#include <LiquidMenu.h>
#include <LiquidCrystal_I2C.h>
#include <Button.h>

#define LOW 0x0

LiquidCrystal_I2C lcd(0x27, 20, 4);

// Button objects instantiation
const bool pullup = true;
Button left(10, pullup);
Button right(11, pullup);
Button enter(12, pullup);

LiquidLine welcome_line1(1, 0, "LiquidMenu ", LIQUIDMENU_VERSION);
LiquidLine welcome_line2(1, 1, "Focus example");
LiquidScreen welcome_screen(welcome_line1, welcome_line2);

LiquidLine leftFocus_line(1, 0, "Left focus");
LiquidLine rightFocus_line(1, 1, "Right focus");
LiquidScreen leftright_screen(leftFocus_line, rightFocus_line);

LiquidLine customFocus_line(1, 0, "Custom focus");
LiquidScreen customFocus_screen(customFocus_line);

LiquidLine leftF1_line(6, 0, "Left");
LiquidLine leftF2_line(6, 1, "focus");
LiquidScreen leftF12_screen(leftF1_line, leftF2_line);

LiquidMenu menu(lcd);

// Checks all the buttons.
void buttonsCheck() {
  if (right.check() == LOW) {
    menu.next_screen();
  }
  if (left.check() == LOW) {
    menu.previous_screen();
  }
  if (enter.check() == LOW) {
    // Switches focus to the next line.
    menu.switch_focus();
  }
}

// Indicator symbol definition, it will change the default symbol for the right focus.
// http://omerk.github.io/lcdchargen/
uint8_t rFocus[8] = {
  0b00000,
  0b00000,
  0b00100,
  0b01110,
  0b00100,
  0b00000,
  0b00000,
  0b00000
};

// Blank function, it is attached to the lines so that they become focusable.
void func() {
  return;
}

void setup() {
  Serial.begin(250000);

  lcd.begin(16, 2);

    // Changes the right focus symbol.
  menu.set_focusSymbol(Position::RIGHT, rFocus);

    // Sets the focus position for this line to be on the left.
  leftFocus_line.set_focusPosition(Position::LEFT);
  rightFocus_line.set_focusPosition(Position::RIGHT);
  // 'CUSTOM' focus position needs column and row parameters.
  customFocus_line.set_focusPosition(Position::CUSTOM, 15, 0);
  // The focus position can be changed for the whole screen or
  // menu at once. 'CUSTOM' position cannot be set because it
  // needs individual coordinates.
  leftF12_screen.set_focusPosition(Position::LEFT);

    // Attaching a function to a line makes the line focusable.
  leftFocus_line.attach_function(1, func);
  rightFocus_line.attach_function(1, func);
  customFocus_line.attach_function(1, func);
  leftF1_line.attach_function(1, func);
  leftF2_line.attach_function(1, func);

  menu.add_screen(welcome_screen);
  menu.add_screen(leftright_screen);
  menu.add_screen(customFocus_screen);
  menu.add_screen(leftright_screen);
  menu.add_screen(leftF12_screen);

  menu.update();
}

void loop() {
  buttonsCheck();
}

This is just basically the focus example adapted for I2c so I can see how focus works before writing my menu’s I just want to try all the examples I can move on to the next part of transfering code over. I appreciate in the examples it shows how to display if a pin is turned on or not so I feel most comfortable with trying this library out since I believe it will make my menu system easier to manage and work with.

I feel like my current menu works well but is a hack job and not as well organized as it can be with this. I don’t know how Id display a text variable that states on or off on the menu line to avoid entering the menu to check since the menu list is a array of menu items.