Skip to content

Latest commit

 

History

History
executable file
·
63 lines (53 loc) · 4.38 KB

README.md

File metadata and controls

executable file
·
63 lines (53 loc) · 4.38 KB

GUIslice library

Build Status GitHub Issues Contributions welcome License

A lightweight GUI framework suitable for embedded displays

Example 1 Example 5

Features

  • Pure C library, no dynamic memory allocation
  • Widgets: text, images, buttons, checkboxes, radio buttons, sliders, radial controls, scrolling textbox / terminal, graphs, etc. plus extensions and multiple pages.
  • Includes cross-platform GUIslice Builder (beta) desktop application to generate layouts
  • Platform-independent GUI core currently supports: SDL1.2, SDL2.0, Adafruit-GFX, TFT_eSPI
  • Devices: Raspberry Pi, Arduino, ESP8266 / NodeMCU, ESP32, M5stack, Feather M0 (Cortex-M0), nRF52 (Cortex-M4F), LINUX, Beaglebone Black, STM32
  • Typical displays: PiTFT, Adafruit TFT 3.5" / 2.8" / 2.4" / 2.2" / 1.44", FeatherWing TFT, OLED 0.96", mcufriend, Waveshare, 4D Cape
  • Display drivers include: ILI9341, ST7735, SSD1306, HX8347D, HX8357, PCD8544
  • Touchscreen control including: STMPE610, FT6206, XPT2046, 4-wire, tslib
  • Foreign characters / UTF-8 encoding (in SDL mode), anti-aliased fonts (in TFT_eSPI mode)
  • Dynamic display rotation
  • GPIO / pin / keyboard control for non-touchscreen devices
  • No GUIslice installation -- just add include files and go!
  • LINUX Dependencies: sdl, sdl-ttf, optional: tslib
  • Arduino Dependencies: TFT_eSPI or Adafruit-GFX plus display / touch driver libraries

Screenshots

Example 3 Example 4 snap07_c

GUIslice Builder

  • Includes cross-platform (Windows & LINUX) desktop application (beta) to generate GUIslice layouts
  • Please refer to GUIslice Builder wiki for documentation GUIslice Builder

Device Configuration

  • The following table lists a number of devices that have been tested with GUIslice and the recommended configuration modes and test examples.

guislice-devices

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 error messages via the Serial Monitor interface. However, if further reduction of FLASH memory is necessary, disable DEBUG_ERR in the GUIslice_config_*.h.