Skip to content

Configuring GUIslice

Calvin Hass edited this page Aug 18, 2019 · 33 revisions

Overview >

There a number of settings that must be configured in order for GUIslice to access your display hardware. While reasonable defaults have been provided, a number of settings may need to be customized to match your hardware and desired feature set.

Here is a summary of the recommended steps to get a new display working effectively with GUIslice:

  • Identify the display and the appropriate graphics & touch drivers for it.
  • Confirm the stand-alone graphics and touch library tests work (ie. Adafruit graphicstest) without GUIslice
  • Select a GUIslice Example Config suitable for your display
  • Update GUIslice_config.h to include this Example Config
  • For breakout boards, modify the config pinout to match the wiring connections
  • Confirm GUIslice basic graphics diagnostic (ex01_ard_basic) works
  • For touchscreen displays, run GUIslice diagnostic touch tests. Update the pin / calibration settings in your config as indicated by the diagnostic sketch
  • Customize the config for optional features or adjustments
  • Run other GUIslice examples
  • Optionally, use the GUIslice Builder to create a GUI

Identify your Display

The first step is to determine what display & touch hardware you are using.

Using a Shield?

By far the easiest type of devices are shields (also called hats), which are display modules that connect directly to the MCU/processor board. The advantage is that no additional wiring is needed, making them almost plug-and-play!

If you are using a shield, please identify the corresponding Example Config file in the GUIslice Display table.

Using a Breakout Board?

While Shields are very convenient, a more common display type is the breakout board. This is simply a display module with headers that you must manually connect/wire to your MCU/processor board. Some additional configuration is required for breakout boards since we need to instruct GUIslice what pins were used when wiring to your display.

If you are using a breakout board, please identify the corresponding Example Config file in the GUIslice Display table that looks like the closest match.

For the breakout board example config files, some sample wiring connections have been provided. Users will likely need to update the physical wiring to match the config or update the config wiring to match the hardware.

Table of Common Displays

This page lists out a number of display shields and breakout boards, along with the corresponding Example Config file for GUIslice:

Device Compatibility

A summary of the compatibility between various MCUs and the available graphics library modes: Device Compatibility

Configuration Guides

Now that we have identified the appropriate display & touch controller, we are ready to configure GUIslice to use it.

Please refer to the detailed configuration guide for each device family:

For touch displays, please refer to:

For detailed information regarding the various configuration options within the config file:

If you need to support multiple device configurations in the Arduino environment, refer to the following:

Important Note for Arduino library upgrades

  • If you are using the Arduino IDE to update your GUIslice library, please note that it DELETES all files within the GUIslice library folder. This means that any customizations of the config files will be lost.
  • Therefore, it is essential that you back up your config files before upgrading within the Arduino IDE.

Important Note for Arduino Users

  • The baseline Arduino (ATmega328P) devices have very limited SRAM memory (2KB SRAM, 32KB FLASH). Therefore, it is important that GUI elements are stored in FLASH whenever possible. A set of examples that demonstrate this method are located in /examples/arduino_min. The examples in /examples/arduino don't use the FLASH optimizations and are less likely to run on these limited devices.
  • Other Arduino variants and devices such as ATmega2560 (8KB SRAM, 256KB FLASH), ESP8266, Node-MCU, Feather M0, etc. tend to work much better as there is far more SRAM and FLASH available.
  • By default, DEBUG_ERR is enabled on many devices to provide extensive error messages via the Serial Monitor interface. However, if further reduction of FLASH memory is necessary, disable debug messaging by changing the DEBUG_ERR setting in Section 5 of the GUIslice example config: #define DEBUG_ERR 0
Clone this wiki locally