Go Down

Topic: MENWIZ: yet another character lcd menu wizard library (Read 78 times) previous topic - next topic


I tried looking at this yesterday but, unfortunately, it only seems to work with a particular implementation of LiquidCrystal_I2C, the same one as compatible in the New LiquidCrystal Library.

My I2C backpacks work with the other I2C implementation, the one that controls the backlight through the I2C bus, rather than a dedicated arduino pin.

Are thee any plans to make MENWIZ compatible with more than one LCD connection method, as it rather limits scope for take up in this guise, but otherwise looks like it could be an excellent library.

If it were to be included as core library then it would need to work with any LCD connection, certainly with the shields available.

Many thanks.


Menwiz works on any interface method supported by (new) LiquidCrystal.
(new) liquidCrystal library works with the following interfaces (as in https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home)

- 4 bit parallel LCD interface
- 8 bit parallel LCD interface
- I2C IO bus expansion board with the PCF8574* I2C IO expander ASIC such as I2C LCD extra IO.
- ShiftRegister adaptor board as described Shift Register project home or in the HW configuration described below, 2 and 3 wire configurations supported.
- ShiftRegister 3 wire latch adaptor board as described ShiftRegister 3 Wire Home
- Support for 1 wire shift register ShiftRegister 1 Wire

some users adapted Menwiz library to other libraries (to support devices from webrobots , fugaku etc).  I would like to include a summary by the author of such mods in the doc.
I think  it is quite enough ...  8)


The New LiquidCrystal library is not limited to any aparticular HW wiring or driver as far as pin out is concerned. The base constructor does assume a particular wiring for all the drivers it is capable of handling, but every class has constructors that enable users to configure the pin mapping of their LCD.

You just need to look at the header files for each driver and see the flexibility.

As far as the backlight is concerned, once again, the default constructor does not assume support for the backlight. However, the I2C flavour of the library does support the control of the backlight, you just need to invoke the correct constructor when crating the LCD object. Again, you need to look in the header files to see which method suits your needs.

Will it be extened to support other I2C IO extension ASICs, it will. Currently it supports the PCF8574 and compatibles which is very much standard.

The other thing that is very nice about the library is that you just need to add a new class, with a few methods to support any other driver you can think off (just need to pass how to write to the device and control the backlight). The rest is done for you.


I forgot to mention, that the adaptions that #brunialti mentions are just one line of code: the creation of the object that his library uses, a simple pin mapping call in the constructor. He then uses a reference to the abstract class "LCD" throughout his menu library regardless of the LCD or driver used.

@bruinalti - great work. Every time I look it improves by the hour!!!


Very much appreciate the superb support you guys give in responding so quickly.

I will delve a little deeper into what you've said.

It would be great to switch to using the new library and give MENWIZ a proper try out too.

Many thanks again.

Go Up