diff --git a/README.md b/README.md index 018157e7..5580c61c 100644 --- a/README.md +++ b/README.md @@ -470,6 +470,61 @@ In contrast to the source code based inclusion of XBMs into u8glib, it's require - [ ] setRGB() - [ ] setDefaultMidColor() +####Operate a display with ucglib +Ucglib is a graphics library with support for color TFT displays. + +Ucglib v1.3.3 + +#####SPI connection +The HSPI module is used, so certain pins are fixed: +* HSPI CLK = GPIO14 +* HSPI MOSI = GPIO13 +* HSPI MISO = GPIO12 (not used) + +All other pins can be assigned to any available GPIO: +* CS +* D/C +* RES (optional for some displays) + +Also refer to the initialization sequence eg in [GraphicsTest.lua](lua_examples/ucglib/GraphicsRest.lua): +```lua +spi.setup(1, spi.MASTER, spi.CPOL_LOW, spi.CPHA_LOW, spi.DATABITS_8, 0) +``` + +#####Library usage +The Lua bindings for this library closely follow ucglib's object oriented C++ API. Based on the ucg class, you create an object for your display type. + +ILI9341 via SPI: +```lua +cs = 8 -- GPIO15, pull-down 10k to GND +dc = 4 -- GPIO2 +res = 0 -- GPIO16, RES is optional YMMV +disp = ucg.ili9341_18x240x320_hw_spi(cs, dc, res) +``` + +This object provides all of ucglib's methods to control the display. +Again, refer to [GraphicsTest.lua](lua_examples/ucglib/GraphicsTest.lua) to get an impression how this is achieved with Lua code. Visit the [ucglib homepage](https://github.com/olikraus/ucglib) for technical details. + +#####Displays +To get access to the display constructors, add the desired entries to the display table in [app/include/ucg_config.h](app/include/ucg_config.h): +```c +#define UCG_DISPLAY_TABLE \ + UCG_DISPLAY_TABLE_ENTRY(ili9341_18x240x320_hw_spi, ucg_dev_ili9341_18x240x320, ucg_ext_ili9341_18) \ + UCG_DISPLAY_TABLE_ENTRY(st7735_18x128x160_hw_spi, ucg_dev_st7735_18x128x160, ucg_ext_st7735_18) \ +``` + +#####Fonts +ucglib comes with a wide range of fonts for small displays. Since they need to be compiled into the firmware image, you'd need to include them in [app/include/ucg_config.h](app/include/ucg_config.h) and recompile. Simply add the desired fonts to the font table: +```c +#define UCG_FONT_TABLE \ + UCG_FONT_TABLE_ENTRY(font_7x13B_tr) \ + UCG_FONT_TABLE_ENTRY(font_helvB12_hr) \ + UCG_FONT_TABLE_ENTRY(font_helvB18_hr) \ + UCG_FONT_TABLE_ENTRY(font_ncenR12_tr) \ + UCG_FONT_TABLE_ENTRY(font_ncenR14_hr) +``` +They'll be available as `ucg.` in Lua. + ####Control a WS2812 based light strip ```lua