Skip to content

TcMenu modular IoT menu library supporting rotary encoder, joysticks, many displays, and remote control over Ethernet and Serial

License

Notifications You must be signed in to change notification settings

davetcc/tcMenuLib

Repository files navigation

TcMenu library for Arduino and mbed.

Summary

Dave Cherry / TheCodersCorner.com made this framework available for you to use. It takes me significant effort to keep all my libraries current and working on a wide range of boards. Please consider making at least a one off donation via the sponsor button if you find it useful.

Buy Me A Coffee

TcMenu is a modular, IoT ready multi level menu library for the Arduino and mbed platform, it uses plugins to support many displays, input devices and provides remote control using a simple protocol over Ethernet and Serial.

In any fork, please ensure all text up to here is left unaltered.

Menu designs are built using a designer UI and then generated for the platform. Target platform is anything from Arduino Uno upward to ST32F4 boards and beyond. Tested on many Arduino and mbed boards including Uno, Mega2560, SAMD, Nano, STM32F4 and ESP8266/ESP32 boards. Note that this repository contains just the Arduino/mbed library to meet the requirements in the Arduino specification. For the main repository see the links below. See the list of Arduino and mbed library and board configurations we test with

Arduino Library Installation

For most people, the best way to proceed is via library manager from Arduino IDE. Simply choose tcMenu and this will include it's core dependencies (IoAbstraction and LiquidCrystalIO). The only additions you'll need are:

  • Adafruit_GFX if you are using the Adafruit graphics driver.
  • U8G2 if you are using the U8G2 driver.
  • UIP Ethernet, if you are using the UIP driver, take special care that this is GPL licensed.

PlatformIO Installation

Install the tcMenu library dependency into your sketch. This will automatically include IoAbstraction but not LiquidCrystalIO, if you are using an LCD, also include a LiquidCrystalIO dependency.

Installing tcMenu Designer UI, recommended

For designing menu structures we recommend using the TcMenu Designer which can design your menu in a round trip way, generate the code including the correct plugins for your hardware setup. There is a Linux package, notarized version for macOS, and a Windows Installer with an extended validation certificate.

All releases are available from: [https://github.com/davetcc/tcMenu/releases]

Controlling menu items remotely

You can use the embedCONTROL UI (coming soon), Java Example UI and TcMenu Java API (soon TcMenu C# API too) to remotely control your menu design. Connectivity is near automatic, connection establishment and loss detection is managed by the API, and it's quite straightforward to set up authentication. At the moment we support Ethernet2, UipEthernet, most serial devices including bluetooth, ESP8266 WiFi and ESP32 WiFi.

Manual usage of library, NOT recommended

If you are manually using tcMenu, without the designer, this page fully documents the types used, along with how to create them. Once you've created a menu structure, at this point you will need to include the right plugins. The plugins are hosted in the main repository and each one is documented to some extent in the second link below:

Asking questions

TheCodersCorner.com invest a lot of time and resources into making this open source product which is used by literally thousands of users. We offer both commercial support and C++/Java/Dart consultancy, or if you just want to say thanks, you can also make a donation via GitHub or use the link below.

Buy Me A Coffee

About

TcMenu modular IoT menu library supporting rotary encoder, joysticks, many displays, and remote control over Ethernet and Serial

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published