Touch screen menu calibration

By dave on February 8, 2023

There are several touch plugins in TcMenu and they all have support for controlling calibration and orientation. The calibration UI is presently at preview quality although works for many cases. Below is an image showing the common options to most touch plugins. Calibration and Orientation options Touch screen calibration The touch screen calibration option provides a very simple UI and calibration load and save feature that works with all IoAbstraction based touch screens.

Embedded Java OpenJFX screen rendering for Raspberry PI

By dave on March 12, 2022

Embedded Java for Raspberry PI can present the menu using OpenJFX. Below we provide an overview of the components involved in rendering with this plugin. High level diagram of OpenJFX rendering

XPT2046 / FT6206 touch screen input plugin

By dave on October 12, 2021

This touch screen input plugin supports both XPT2046 and FT6206 based touch screens. In order for this plugin to work correctly the right underlying library must be installed. These are described below: XPT2046 Paul Stoffregen XPT2046 library, best installed from library manager. FT6206 Adafruit_FT6206 library, best installed from library manager When using this touch plugin, the concept of touching and holding touches is handled by the unit itself, even managing “repeat key” is handled by the library, based on which mode it is in.

TcMenu - Touch pad sensor input plugin

By dave on January 14, 2021

Requirements Requires tcMenu V2.0 or greater. Current support: ESP32 touch sensor hardware. Touch-pad sensor summary Touch-pad sensors check for button presses without an actual switch, instead the rely on a change in capacitance when the user touches an area (usually a small metal plate around the size of a finger. Given that this procedure is quite complex, it usually requires hardware support for such inputs, so it can only ever be supported when hardware allows.

TcMenu - Resistive touch screen input plugin

By dave on January 12, 2021

TcMenu resistive touch screen input plugin supports four wire resistive touch devices that are often fitted in front of color TFT displays. This plugin requires two ADC analog inputs, but note that all pins must be output capable. The connectors are often referred to as X+, X-, Y+ and Y-. In all cases X- and Y+ must be connected to ADC (analog input) capable pins. When using this touch unit, the concept of touching and holding touches is handled by the unit itself, even managing “repeat key” is handled by the library, based on which mode it is in.

TcMenu - DfRobot input and display plugin

By dave on June 14, 2019

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 choose Code -> Generate Code from the menu. Once the code generation dialog appears, to the right of the current input type will be a button named “Change”.

TcMenu - Rotary encoder and switch input plugin

By dave on June 14, 2019

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 connected to an i2c device that must be connected to an interrupt capable pin).

Touch screen support that works on all Arduino and mbed boards

By dave on May 15, 2021

IoAbstraction includes support for touch screens. The support is built in layers to allow for different drivers to be added over time. However, at the moment there is support for resistive touch screens on analog pins. This library can work with such touch screens regardless of analog input resolution, as long as the device is supported by IoAbstraction. As with switches and rotary encoder support, this component deals with debouncing the user input and also working out if the user has selected or held, therefore supporting drag operations.

IoAbstraction: Switches and rotary encoder documentation

By dave on November 15, 2018

Using SwitchInput for buttons and rotary encoders SwitchInput is a button and rotary encoder management library that treats button presses and encoder adjustments as events, similar to web and UI applications. Supporting as many switches and rotary encoders as you need, in an event driven way, working along with TaskManagerIO to keep your code clean. Key points: Buttons using either pull down or pull up logic connected directly or via any supported IO expander De-bouncing of events on all buttons and encoders to significantly reduce duplicate callbacks.

Troubleshooting and mock objects for testing

By dave on November 15, 2017

Troubleshooting IO issues using LoggingIoAbstraction Within the MockIoAbstraction.h header there is an implementation of BasicIoAbstraction that delegates through a logging layer. If you are having difficulty determining what your code is sending and receiving, this could be useful. You simply introduce the logging abstraction between your regular abstraction and the device you’re having trouble with. For example: LoggingIoAbstraction loggingAbstraction(internalDigitalIo()); ComponentThatNeedsDebugging debugging(internalDigitalIo()); ComponentThatNeedsDebugging debugging(asIoRef(loggingAbstraction)); Mock objects for use with Unit testing This library itself is quite well tested using our simple test facilities, and further it makes unit testing your code easier.

tcMenu for Arduino

This site uses cookies to analyse traffic, and to record consent. We also embed Twitter, Youtube and Disqus content on some pages, these companies have their own privacy policies.

Our privacy policy applies to all pages on our site

Should you need further guidance on how to proceed: External link for information about cookie management.

Send a message
X

Please use the forum for help with UI & libraries.

This message will be securely transmitted to our servers.