Summary We can build an embedded and mobile application based upon tcMenu in a very short amount of time. Our application infrastructure makes it possible to offer a simple UI that can be controlled using a white label version of embedCONTROL over BLE, WiFi, Ethernet, Serial or many other protocols. Along with all the open-source display options, we also have display drivers for native graphics built into STM32F mbed boards, and can easily create other custom display drivers if needed.
If you’re thinking of using tcMenu, IoAbstraction or any other of our libraries on a commercial project, then we offer training and support to get you started quickly. It can be much more affordable than you first think too. Especially when you factor in the saved time, and reduced risk. Along with this we also have extensions to both of the libraries that are only available under a commercial license. These improvements offer significant performance gains over the open source versions, while remaining very compatible.
TcMenu is a complete menu solution for Arduino and mbed platforms that supports a wide range of input / display devices, and can be remotely controlled using embedCONTROL or using our Java Remote API on supported hardware. This page walks you through using tcMenu Designer to design and build an embedded application. Your code will have access to the full power of IOAbstraction library and TaskManagerIO library. These two popular libraries make clean, event driven programming possible for embedded apps.
TcMenu supports a wide range of rendering devices, from HD44780 based units using our LiquidCrystal fork through to mono OLED’s and full colour TFT displays using the Adafruit_GFX library. In order to achieve such a wide range of displays the renderer describes things in terms of menu items, active positions, editors and dialogs. This allows each renderer to convert these concepts into something that works for it’s needs. TitleWidget for presenting state in icon form For all displays including LiquidCrystal we support the concept of title widgets.
It is possible to secure sub-menus in tcMenu by setting the secured switch in the designer UI. Once this is done, and as long as there is an authenticator within your sketch that is assigned to the menu manager, then there is nothing else to do. First, during the design phase, ensure that you select to secure the sub-menu. It is recommended that such menus are marked as local only, so they cannot be sent remotely:
Using a matrix keyboard with TcMenu is straightforward, we use the IoAbstraction Keyboard Manager component to handle the keyboard, along with a custom listener for tcMenu that feeds the menu manager with appropriate events upon key presses. This library allows you to connect your keyboard either using Arduino pin, or any supported IoAbstraction such as the I2C PCF8574 or MCP23017. Setting up the menu sketch for a Matrix Keyboard Step 1 is to wire up your keyboard in accordance with the above linked keyboard manager page, I recommend at this point testing it through the packaged IoAbstraction example.
TcMenu has considerable out of the box remote connectivity on Arduino. Supporting Ethernet2 library, UipEthernet library, ESP8266 WiFi, ESP32 WiFi and Serial (including Bluetooth Serial). It is recommended that this guide is read in conjunction with the embedded library reference docs. A typical remote menu application designed using the library will be able to accept connections from any source that can communicate using TagVal protocol. On the Arduino side, there will be an object instance named remoteServer provided by the plugin.
Introduction TcMenu is a framework for generating menu based applications on the Arduino platform. Typically a TcMenu application will be designed using the TcMenu Generator UI also on TcMenu Designer on Windows 10 Store, then generated based on the parameters you specify. TcMenu embedded library is written in a modular way for the Arduino platform; giving unprecedented levels of control over how the menu is displayed, input acquisition and external control of the menu.
Introduction to tcMenu item types A typical TcMenu application is made up of menu items. Each menu item is part of a tree, if you are unfamiliar with trees, there’s a little terminology worth learning. We refer to elements that hold other items as the parent of those items. Conversely, each of the items in the sub menu are referred to as children of subMenu. Lets take a look at an example:
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.