
TcMenu is a modular, IoT ready multi level menu library for Raspberry PI, Arduino and mbed supporting many input, display and IoT / remote interfaces. It makes presenting configuration, status and operational information much easier. It is Apache licensed and commercial support is available from us.
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.
Menu library core documentation for Arduino
- TcMenu - Getting started, including video & slides
- tcMenu Designer releases page
- TcMenu library examples and starter projects
- Guide to working with Menu Item Types
- Code Generator and plugins guide
- EEPROM integration with menus
- Setting up IO expanders in designer
- Authentication - securing sub-menus and remote connections
- Creating and generating menus using the CLI
- MenuManager and Menu iteration Guide
- Writing a multi-language locale based menu
- Useful helper functions in tcUtil.h
- Embedded library reference documentation
- GitHub Repository - for source and releases
- Major code level differences between library versions
- Arduino library compatibility matrix and build time settings
Specific for Java on Raspberry PI or embedded Linux
We now build the designer application and embedCONTROL for the 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!
- Creating an embedded Java menu application for RaspberryPI
- Display menu on JavaFX/OpenJDK on Raspberry PI
- Menu In Menu - Embed remote menus into a single app
- Java IoT API reference documentation
- embedCONTROL Core API reference documentation
Display plugins
- Working with display renderers
- Creating and using TitleWidgets and bitmaps
- Themes, properties, grids and icons
- How to define fonts within theme configuration
- Taking over the display
- DfRobot LCD shield driver
- LiquidCrystal / hd44780 display driver
- AdaFruit_GFX driver - ILI9341, ST7735, Nokia5110 etc
- AdaFruit_GFX mbed RTOS for OLED - SSD1306, SH1106
- U8g2 driver - for SSD1306, SH1106 etc
- SSD1306Ascii low memory driver - for SSD1306 on Uno
- TFT_eSPI driver with double buffering
- STM32 LTDC mbed frame buffer with touch
- Customising a display driver
Theme plugins
- OLED/Mono themes both bordered and inverse
- Color themes for most display sizes
- Dark themes for most display sizes
Input plugins
- Rotary encoder, buttons or joystick
- Using a matrix keyboard to control menu
- DfRobot analog pin keypad input
- Resistive touch screen menu integration
- XPT2046 and FT6206 touch screen menu integration
- Capacitive Touch-pad sensor input
Remotely controlling your menu / IoT
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.
- embedCONTROL UI documentation
- Menu library remote connectivity tutorial
- IoT monitoring and control using the Java API
- Java IoT API reference documentation
- TagVal protocol documentation
IoT and Remote control plugins
- Serial driver for usb, rs232 and Bluetooth control
- Ethernet driver for Ethernet2 and Uip control
- WiFi driver for ESP32 and ESP8266 control
- Simhub connector for tcMenu using custom serial protocol
- Embedded Java plugin for ethernet/WiFi remote
- Serving up embedCONTROL in a web browser