Menu Library for Arduino with designer.
TcMenu is made up of a menu library for the Arduino platform, along with a designer UI and IoT remote control facilities. These include a Controller App, Java API with a documented protocol. It works along with our IOAbstraction library to provide event driven menus that can be controlled both on device and remotely.
The menu library builds on top of IoAbstraction and TaskManager, this allows us to support Arduino, ESP8266, ESP32 and mbed RTOS 6. The input, display and remote capabilities are provided as plugins, making it possible to support a very wide range of devices without making the library overly complex. Note that mbed RTOS 6 support is in BETA, and you must select the BETA stream in the UI to use it.
Menus can be controlled remotely using a desktop controller application, Java API and a mobile app for iOS and Android coming soon. Already supporting Ethernet2, UipEthernet (ENC28J60), ESP8266-WiFi, ESP32-WiFi, Bluetooth and Serial the remote control capabilities are impressive.
In all a very complete menu library for Arduino that manages to keep RAM usage very low. Most of the menu information such as name and type are stored in constant / program memory, and an average menu application uses as little as 500 - 600 bytes of base RAM including display, i2c and support libraries!
Menu library core documentation for Arduino
- TcMenu - Overview and Getting started
- Using the tcMenu designer UI
- Core menu library tutorial
- Securing sub-menu items
- Embedded library reference documentation
- GitHub Repository - for source and releases
- Manually creating menu structures - not recommended
- Working with display renderers
- DfRobot LCD shield driver
- LiquidCrystal / hd44780 display driver
- AdaFruit_GFX driver
- U8g2 driver
- Customising a display driver
- Rotary encoder, buttons or joystick
- Using a matrix keyboard with tcMenu
- DfRobot analog pin keypad input
Remotely controlling menus / IoT
- Menu library remote connectivity tutorial
- Remotely control your menu using the Controller App
- Using the Java API to control your menu
- Java API reference documentation
- TagVal protocol documentation
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