Go Down

Topic: GEM (Good Enough Menu) Library (Read 510 times) previous topic - next topic


Hi everyone!

I wrote just another library for creation of graphic multi-level menu (ain't there plenty of them already?): GEM. It's good enough for me, so might as well be useful to somebody else=)

Features editable menu items (of `int`, `byte`, `boolean`, `char[17]` data types) and option selects.

User-defined callback function can be specified to invoke when menu item is saved. Supports buttons that can invoke user-defined actions and create action-specific context, which can have its own enter (setup) and exit callbacks as well as loop function.

Requires AltSerialGraphicLCD library by Jon Green. LCD screen must be equipped with SparkFun Graphic LCD Serial Backpack and properly set up to operate using firmware provided with aforementioned library.

So, yeah, that may sound limiting, but in fact it yields a quite welcome outcome: using only two wires to connect Arduino to graphic LCD (plus power and ground) is a must in projects with tight pin budget.

The library is provided with all necessary documentation and annotated examples, as well as Wiki section on GitHub that features additional guides for the supplied examples and How To's. Provided examples are also use my another library - KeyDetector (although it is not necessary, just making whole push-button presses detection thing a little easier).

Consider checking it out, may be it will be of some use to you eventually (especially if you happen to have some SparkFun's Serial Backpacks on your hands;) ).



I can almost always find at least some minor issue with a library after a quick glance. I looked GEM over the other day when you submitted the Library Manager request and found not a one! I'm always very impressed when I see people make the effort to add some good documentation since I see a lot of libraries with little or none.

Thanks for your contribution to the Arduino community!


pert Wow, thank you for your high evaluation of the work done! I just really tried to document and present everything in a way that I would be happy to read myself. I've come from the web-development, and I appreciate good-written documentation as much as the value of the project itself, no matter how big or small it is.

Go Up