A lightweight GUI framework suitable for embedded displays
- Documentation wiki (github)
- GUIslice API documentation (PDF)
- Release notes
- Website (www.impulseadventure.com)
- Support email: guislice @ impulseadventure . com
- 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.
- Platform-independent GUI core currently supports: SDL1.2, SDL2.0, Adafruit-GFX, TFT_eSPI
- Devices: Raspberry Pi, Arduino, ESP8266 / NodeMCU, ESP32, Feather M0 (Cortex-M0), nRF52 (Cortex-M4F), LINUX, Beaglebone Black, M5Stack, STM32
- Typical displays: PiTFT, Waveshare, Adafruit TFT 3.5" / 2.8" / 2.4" / 2.2" / 1.44", OLED 0.96", 4D Cape
- Display drivers include: ILI9341, ST7735, SSD1306, HX8357
- Touchscreen control including: STMPE610, FT6206, XPT2046, tslib
- Foreign characters / UTF-8 encoding (in SDL mode)
- 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
- The following table lists a number of devices that have been tested with GUIslice and the recommended configuration modes and test examples.
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
\arduino_min. The examples in
\arduinodon'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_ERRis 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