TcMenu plugins are extensions that allow the menu library to work with commonly available displays, input devices and remote control capabilities.
Requirements Requires tcMenu V2.0 or greater. Current support: ESP32 touch sensor hardware. Touch-pad sensor summary Touch-pad sensors check for button presses without an actual switch, instead the rely on a change in capacitance when the user touches an area (usually a small metal plate around the size of a finger. Given that this procedure is quite complex, it usually requires hardware support for such inputs, so it can only ever be supported when hardware allows.
Requires tcMenu V2.0 or greater. TcMenu resistive touch screen input plugin supports four wire resistive touch devices that are often fitted in front of color TFT displays. This plugin requires two ADC analog inputs, but note that all pins must be output capable. The connectors are often referred to as X+, X-, Y+ and Y-. In all cases X- and Y+ must be connected to ADC (analog input) capable pins.
In this guide we show how to use the Adafruit_GFX library for mbed RTOS to renderer menu items with tcMenu. This rendering driver for Adafruit_GFX is built into the core menu designer download, meaning it’s available out of the box when MBED_RTOS is selected. We maintain a fork of Adafruit_GFX library for mbed that currently supports OLED displays only. Therefore, at the moment all options are memory buffered. Before proceeding, you’ll need to make sure you’ve installed the Adafruit_GFX for mbed library and the library; which also contains the OLED drivers.
We have a remote control driver for tcMenu that can be configured to easily work with SimHub dash. It requires at least 1.5.0 of tcMenu, and a version of SimHub that supports custom serial devices. We only recommend this integration for intermediate to advanced Arduino users, it requires a greater understanding of the underlying system to set it up. Please note that we are not affiliated in any way with SimHub, any issues with SimHub should be reported as usual, and any issues with TcMenu integration should be reported to us.
In this guide we show how to setup and use the ESP8266 / ESP32 Wifi remote plugin for use in the menu library. This plug-in works with most ESP boards. ESP WiFi is quite easy to set up as it’s built into the device. However, when using any ESP board and ESP8266 especially you must make sure that you frequently yield control to the runtime. If you are using task manager exclusively this should not be an issue.
In this guide we show how to setup and use the Ethernet2 and UipEthernet remote plugin for use in the menu library. This plug-in works with Ethernet shields and modules available for Arduino. This plug-in will work with most Arduino provided ethernet shields and modules that use the Ethernet2 library, it will also work with most ENC28J60 based modules using the UipEthernet library. It is your responsibility to configure and initialise the Ethernet adapter before calling setupMenu in the general application setup.
In this guide we show how to setup and use the serial communication remote plugin for tcMenu. It is a general purpose Serial plugin that has been tested with both USBSerial and Bluetooth on a number of different devices. Serial is probably about the easiest remote to set up in terms of hardware and software. Nearly all Arduino boards have a built in USB Serial adapter. On many Arduino boards there are additional Serial interfaces, usually named Serial1 and Serial2.
In this guide we show how to use the U8G2 library to renderer menu items with tcMenu. This rendering driver for U8G2 is built into the core menu designer download, meaning it’s available out of the box. The U8G2 library supports a lot of different displays, with very different capabilities. This plugin concentrates on monochrome displays, mainly OLED that are supported by this library. It’s worth reading this guide fully so that you understand how we manage the various capabilities.
DfRobot input and display plugin make generating a menu for DfRobot shields very simple. There’s no configuration needed in order to produce a menu. This plugin auto configures the display to use LiquidCrystalIO library and sets up switches to use the micro-switches connected to analog input A0. Setting up for your menu First, ensure your menu structure is saved and then choose Code -> Generate Code from the menu. Once the code generation dialog appears, to the right of the current input type will be a button named “Change”.
TcMenu base input plugin supports Rotary Encoders that are either connected directly to Arduino pins or via an I2C expander such as a PCF8574 or MCP23017. This support is provided by the IoAbstraction library that’s automatically included by the menu designer UI. The only limitation for rotary encoders is that PinA must be connected to an interrupt capable pin (or if connected to an i2c device that must be connected to an interrupt capable pin).
In this guide we show how to render menu items using LiquidCrystalIO library, onto displays compatible with HD44780 (often referred to as LCD). This rendering driver is built into the core menu designer download, meaning it’s available out of the box. The LiquidCrystalIO library is a fork of the LiquidCrystal library, with a few additional capabilities. Most importantly, updating HD44780 displays is slow, think 270Khz slow. This library avoid long pauses by using task manager for managing these delays, so is uniquely able to keep your tasks running in the mean time.
In this guide we show how to use the Adafruit_GFX library to renderer menu items with tcMenu. This rendering driver for Adafruit_GFX is built into the core menu designer download, meaning it’s available out of the box. The Adafruit_GFX library supports a lot of different displays, with very different capabilities. Some are monochrome with an in-memory buffer; whereas others are high resolution colour displays that are not buffered in memory. In order to make our renderer as generic as possible it supports both of these capabilities through configuration.
Requirements tcMenu library and plugins V2.0 a recent version of TFT_eSPI library installed TFT_eSPI rendering summary In this guide we show how to use the TFT_eSPI library to renderer menu items with tcMenu. This rendering driver for TFT_eSPI library is built into the core menu designer download, meaning it’s available right out of the box. The TFT_eSPI library supports a lot of different displays, that cover a range of resolutions.
This guide to tcMenuDesigner code generation runs through the way that code is created in the designer. Covering how the menu items are internally represented, how plugins are responsible for generating the code and lastly, how the code is output. It assumes that you are completely familiar with the general concepts in tcMenu. If not at least read the getting started guide before proceeding. How the UI works internally TcMenu designer UI is basically the equivalent of a form designer.
In TcMenu 2.0 we are making some changes to the way that renderers work, this makes the library viable going forward, and provides huge render quality improvements for nearly everyone. However, we’ve had a to deprecate the ColorGfxMenuConfig method of specifying configuration, and we may remove it in a future version completely. Further we made a few other changes, the easiest way to pick up these changes is to let the designer do code generation on your project, it will put the most recent plugin files in places automatically.