Hello,
I've been spending the past few days working with the I2C 1602 LCD Menu, specifically the Hitachi HD4478 16x2 LCD Display with the LCM 1602 IIC controller. This specifically part has allowed me to efficiently save space and keep my hardware tidy - anyways...
To give you a little more information about my project: I am making a machine that will allow me to do experiments and research into the production of graphene components and their underlying concepts. I welcome anyone else who would be interested, has experienced with the material, or has already produced a similar machine to chime in on some discussion (perhaps I'll make another thread? :D)
However, work first and play later:
I am having issues creating a Menu Interface for the end user to select between different modes. I have tried the one library I seem to come across the most often: MenuBackend.h
In particular I am using Revision 1.4 of this library as per the examples from: Tutorial: manage menu and LCD display with Arduino – Coagula – Giuseppe Di Cillo
The main issue: The LCD Prints the initial information I add in the void setup function. However it does not display the menu, it immediately goes to a blank screen and I cannot seem to find a work around. It must be how I wrote my code... Or one would logically deduce.
Ideally, I want to create an interface that is similar to this:
In the video, the developer shows a hierarchical menu that controls, I assume, an SD card interface.
I've contact the person who uploaded that video to see if they would let me look at the code or at least help me troubleshoot my problems.
I will also need to be able to adjust values, or even enter values from a number pad, in this video the developer uses a three button interface to select modes/values for a DSLR Shutter Intervalometer:
I would also like to be able to display the brackets around the "highlighted" value. That or do a bitmap highlight of the character (more complex yet neat looking)
Now time to look at what I've been doing... Understand that the code compiles without errors and there are some things I'm trying to do, specifically change a blinking LED's delay values using integers where I just have not figured out.
Here is the code I've written up:
(400+ Lines)
For the sake of convenience I will paste the menu hierarchy again to itself:
/*===============================================================
|| Simplified menu test...
|| /root
|| |_uptime
|| |_settings
|| | |_Blink LED
|| | |_d100 (delay for 100ms)
|| | |_d200 (delay for 200ms)
|| | |_d300 (delay for 300ms)
|| | |_d400 (delay for 400ms)
|| |_reset
\\=============================================================*/
Lastly, it wouldn't be nice to just NOT show the hardware. Here is what I am working with at a glance. If needed I can quickly draw up a schematic in Fritzing:
These are 6 NO Debounce buttons I salvaged from a VCR
I've gone over what I am trying to accomplish so here are
Questions:
(1) MenuBackend.h seems to be an okay library. However the documentation I've found on it is old and seems to be in a state of "If you have a problem tell the developer, they'll get back to you maybe." Seeing as some of the last threads I found regarding MenuBackend.h issues date back to 2010.

(2) Is there a way to create a hardware defined debounce for the buttons I am using? This would make my script a little bit more efficient. Maybe someone could just point me in the direction of a thread or blog that has a schematic I could use?
(3) Is the I2C address of the LCD screen fixed, as in will it always be 0x27 with the LCM 1602 IIC controller or can this address be changed? I cannot seem to connect the LCD over this address when I am using the pull up resistors on the I2C Bus. Please note that I currently have 3 I2C devices involved with this project and I expect the addition of more when it comes to providing safety features.
I do not expect anyone to write the code for me. I do take into consideration that yes I am a novice, (new to Arduino), to coding, and I've tried to cut scripts from other sources and adapt it to what I want to do.
Thanks for any help you may be able to give, and certainly thanks for reading.
Let me know if you have any other questions regarding the project itself or the issue(s).
edit: Images stretched screen