Tc Menu library

TcMenu is a modular, IoT ready multi level menu library for Arduino, ESP32-IDF, Pico-SDK, STM32Cube and mbed platforms supporting many input, display and IoT / remote interfaces. It makes presenting configuration, status and operational information much easier. Apache licensed and therefore safe for commercial use.

Start by working out what information and state is to be represented in the Designer UI. Take inspiration from the Arduino menu examples. Then, run Code Generator which outputs code for the selected board ready for use in an IDE.


Building Embedded Menus for Arduino

Web based menu designer:

Example embedded menu projects

We've done our best to provide examples and starters for every board and API that we support. Including examples for using menus directly on STM32Cube and PicoSDK.

Using Tc menu library:

You can use STM32Cube, PicoSDK, and mbed without requiring the Arduino framework at all. We have example menu projects that build directly against STM32Cube and PicoSDK with highly impressive performance. Our direct support generally works via CMake using vendor-provided best practice.

See the examples section further up as it has links to the repositories for STM32Cube, PicoSDK, and ESP32-IDF.

Working with displays

Display plugins

Theme plugins

Input plugins

Remotely controlling your menu / IoT

IoT control with embedCONTROL Our menu designer can build in IoT capabilities near automatically (on Ethernet2, UipEthernet (ENC28J60), ESP8266-WiFi, ESP32-WiFi, Bluetooth, and Serial). Allowing you to remotely monitor and control your device using Embed Control with minimal effort.

However, to write your own remote monitoring, use our Java Remote API, TypeScript/JavaScript API, C#/DotNet API, or the Python API. Coming soon is a Dart API.


IoT and Remote control plugins

Creating / building / modifying plugins

Archived documentation

Detailed description of MenuInfo based menu items

By dave

All types of MenuItem can have an INFO block, which is a structure that can be stored in FLASH that represents the static data for an item. This is because all items directly extend from the MenuItem class, they always have a reference to an AnyMenuInfo block that's stored in program memory on devices that support it. In addition to this,...

Detailed description of RuntimeMenuItem

By dave

Items that extend from runtime menu item use a callback at runtime that can be used to get more or less every property, but will use the INFO block if it is available (not null). That being the case, they don't need but can use an info block (that is defined ahead of time) ahead of time. However, in...

These may be of interest

We use cookies to analyse traffic and to personalise content. We also embed Twitter and Youtube on some pages, these companies have their own privacy policies.

See the privacy policy and terms of use of this site should you need more information or wish to adjust your settings.