A lightweight GUI framework suitable for embedded displays
- Documentation wiki
- GUIslice API documentation (online) & (PDF)
- Latest Updates & Work in Progress
- Release history
- Website (www.impulseadventure.com)
- Support email: [email protected]
- 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
- Includes cross-platform (Windows & LINUX) desktop application (beta) to generate GUIslice layouts
- Please refer to GUIslice Builder wiki for documentation
- The following table lists a number of devices that have been tested with GUIslice and the recommended configuration modes and test examples.
- 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 theGUIslice_config_*.h
.