TcMenu is a popular, complete solution for building Arduino and mbed embedded applications that supports a wide range of input / display devices. Further, tcMenu apps can be remotely controlled using embedCONTROL or using our Java Remote API on Ethernet2, UipEthernet (ENC28J60), ESP8266-WiFi, ESP32-WiFi, Bluetooth and Serial. Using tcMenu Designer you can round-trip the menu UI for your app and run code generation for your board. The open source menu library builds on top of IoAbstraction and TaskManager, this allows us to support Arduino, ESP8266, ESP32 and mbed RTOS 6.
This library provides abstractions that help you write event-driven Arduino and mbed applications. It contains a simple task management facility, device pin abstraction where IO expanders can be treated like pins, interrupt management, button de-bouncing and rotary encoder support. There are many examples packaged with the library that cover most use cases. For development, you can use any Arduino or mbed IDE. However, our recommendation is platformIO with Clion or VS Code.
TaskManagerIO - Summary TaskManagerIO provides scheduling, events and interrupt marshalling, all while remaining thread safe across a wide range of boards. By thread safe we mean that you can add tasks to task manager from another thread while it’s still running. However, the task manager itself will always run on one thread, making it easy for you to write code. This library contains the original scheduling support class TaskManager that was previously built into IoAbstraction.
LiquidCrystalIO is a fork of the LiquidCrystal library for HD44780 devices that works on both Arduino and mbed devices, integrating with IoAbstraction library. Further, it also works either with device pins or any IO expansion device supported by IoAbstraction, including direct pins, PCF8574, MCP23017 and shift registers. Importantly, HD44780 displays are slow, very slow in fact, running at around 270Khz. This means that there are inevitable delays involved in programming the device, in this fork those delays give some time back to task manager so that other tasks can run while waiting.
LED Display is a library that can manage multiple 7-segment displays using the multiplex technique.