TcMenu is a modular, IoT ready multi level menu library for Arduino, mbed, Pico-SDK, mbed and many more 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.
Web based menu designer:
Using Tc menu library:
Desktop version of the menu designer
You can use PicoSDK without requiring Arduino framework at all. The opensource version of IoAbstraction supports PicoSDK directly for nearly all cases. Our direct support generally works via CMake, and the starting point for these builds is our CMake based project in the cmakeProject directory. If you're using this commercially, please contact us for commercial support.
We can support other platforms such as ESP-IDF and STM32 using this approach commercially.
We have tested the designer application and embedCONTROL on a Raspberry PI, so not only can you make a Raspberry PI embedded application, you can even run designer and embedCONTROL on an RPI as well! The Java API and EmbedControl libraries are fully JavaDoc commented.
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.
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....
In this guide we show how to setup and use the ethernet plugin for Ethernet2, UipEthernet, Stm32Ethernet libraries. This plug-in works with Ethernet shields and many ethernet modules available for Arduino. For a general overview on remotely controlling and monitoring see controlling embedded apps with embedCONTROL . IMPORTANT: It is your responsibility to configure and initialise the Ethernet adapter before...
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...
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...
In this guide we show how to use the U8G2 library to renderer menu items to an OLED unit 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...
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...
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...
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...
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...
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. This plugin simply wraps the functionality that the library provides. The TFT_eSPI menu plugin supports a lot of different displays, that...