Skip to content

Instantly share code, notes, and snippets.

@cosismo
Last active December 12, 2024 05:09
Show Gist options
  • Save cosismo/10b544eb6accbe3d7879d46bc1386545 to your computer and use it in GitHub Desktop.
Save cosismo/10b544eb6accbe3d7879d46bc1386545 to your computer and use it in GitHub Desktop.
The Hello World Arduino GFX Library example with the correct parameters for Open-Smartwatch hardware
/*******************************************************************************
* Start of Arduino_GFX setting
*
* Arduino_GFX try to find the settings depends on selected board in Arduino IDE
* Or you can define the display dev kit not in the board list
* Defalult pin list for non display dev kit:
* Arduino Nano, Micro and more: TFT_CS: 9, TFT_DC: 8, TFT_RST: 7, TFT_BL: 6
* ESP32 various dev board : TFT_CS: 5, TFT_DC: 27, TFT_RST: 33, TFT_BL: 22
* ESP8266 various dev board : TFT_CS: 15, TFT_DC: 4, TFT_RST: 2, TFT_BL: 5
* Raspberry Pi Pico dev board : TFT_CS: 17, TFT_DC: 27, TFT_RST: 26, TFT_BL: 28
* RTL872x various dev board : TFT_CS: 18, TFT_DC: 17, TFT_RST: 2, TFT_BL: 23
* Seeeduino XIAO dev board : TFT_CS: 3, TFT_DC: 2, TFT_RST: 1, TFT_BL: 0
* Teensy 4.1 dev board : TFT_CS: 39, TFT_DC: 41, TFT_RST: 40, TFT_BL: 22
******************************************************************************/
#include <Arduino_GFX_Library.h>
//Parameters for Open-Smartwatch
#define TFT_CS 5
#define TFT_DC 12
#define TFT_RST 33
#define TFT_SCK 18
#define TFT_MOSI 23
#define TFT_MISO -1 // no data coming back
#define TFT_LED 9
/* More dev device declaration: https://github.com/moononournation/Arduino_GFX/wiki/Dev-Device-Declaration */
#if defined(DISPLAY_DEV_KIT)
Arduino_GFX *gfx = create_default_Arduino_GFX();
#else /* !defined(DISPLAY_DEV_KIT) */
/* More data bus class: https://github.com/moononournation/Arduino_GFX/wiki/Data-Bus-Class */
//Arduino_DataBus *bus = create_default_Arduino_DataBus();
Arduino_DataBus *bus = new Arduino_ESP32SPI(TFT_DC, TFT_CS, TFT_SCK, TFT_MOSI, TFT_MISO, VSPI /* spi_num */);
/* More display class: https://github.com/moononournation/Arduino_GFX/wiki/Display-Class */
//Arduino_GFX *gfx = new Arduino_ILI9341(bus, TFT_RST, 0 /* rotation */, false /* IPS */);
Arduino_GC9A01 *gfx = new Arduino_GC9A01(bus, TFT_RST, 0 /* rotation */, true /* IPS */);
#endif /* !defined(DISPLAY_DEV_KIT) */
/*******************************************************************************
* End of Arduino_GFX setting
******************************************************************************/
void setup(void)
{
gfx->begin();
gfx->fillScreen(BLACK);
#ifdef TFT_BL
pinMode(TFT_BL, OUTPUT);
digitalWrite(TFT_BL, HIGH);
#endif
gfx->setCursor(10, 10);
gfx->setTextColor(RED);
gfx->println("Hello World!");
delay(5000); // 5 seconds
}
void loop()
{
gfx->setCursor(random(gfx->width()), random(gfx->height()));
gfx->setTextColor(random(0xffff), random(0xffff));
//gfx->setTextSize(random(6) /* x scale */, random(6) /* y scale */, random(2) /* pixel_margin */);
gfx->setTextSize(1 /* x scale */, 1 /* y scale */, 1 /* pixel_margin */);
gfx->println("Hello World!");
delay(1000); // 1 second
}
@paolodecaro
Copy link

Good evening, I can't compile this example of yours, I get these errors. Could you help me. I thank you.

In file included from c:\users\paolo\documents\arduino\libraries\lvgl\src/lv_init.h:16,
from c:\users\paolo\documents\arduino\libraries\lvgl\lvgl.h:24,
from c:\Users\paolo\Documents\Arduino\libraries\lvgl\src/lvgl.h:16,
from C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:4:
c:\users\paolo\documents\arduino\libraries\lvgl\src/lv_conf_internal.h:64:120: note: #pragma message: Possible failure to include lv_conf.h, please read the comment in this file if you get errors
#pragma message("Possible failure to include lv_conf.h, please read the comment in this file if you get errors")
^
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:16:8: error: 'lv_disp_draw_buf_t' does not name a type; did you mean 'lv_draw_buf_t'?
static lv_disp_draw_buf_t draw_buf;
^~~~~~~~~~~~~~~~~~
lv_draw_buf_t
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:31:21: error: variable or field 'my_disp_flush' declared void
void my_disp_flush( lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p )
^~~~~~~~~~~~~
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:31:21: error: 'lv_disp_drv_t' was not declared in this scope
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:31:21: note: suggested alternative: 'lv_fs_drv_t'
void my_disp_flush( lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p )
^~~~~~~~~~~~~
lv_fs_drv_t
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:31:36: error: 'disp_drv' was not declared in this scope
void my_disp_flush( lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p )
^~~~~~~~
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:31:46: error: expected primary-expression before 'const'
void my_disp_flush( lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t color_p )
^~~~~
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:31:80: error: expected primary-expression before '
' token
void my_disp_flush( lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p )
^
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:31:81: error: 'color_p' was not declared in this scope
void my_disp_flush( lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p )
^~~~~~~
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:31:81: note: suggested alternative: 'lv_color_t'
void my_disp_flush( lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t color_p )
^~~~~~~
lv_color_t
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:45:24: error: variable or field 'my_touchpad_read' declared void
void my_touchpad_read( lv_indev_drv_t * indev_drv, lv_indev_data_t * data )
^~~~~~~~~~~~~~
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:45:24: error: 'lv_indev_drv_t' was not declared in this scope
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:45:24: note: suggested alternative: 'lv_indev_data_t'
void my_touchpad_read( lv_indev_drv_t * indev_drv, lv_indev_data_t * data )
^~~~~~~~~~~~~~
lv_indev_data_t
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:45:41: error: 'indev_drv' was not declared in this scope
void my_touchpad_read( lv_indev_drv_t * indev_drv, lv_indev_data_t * data )
^~~~~~~~~
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:45:68: error: expected primary-expression before '
' token
void my_touchpad_read( lv_indev_drv_t * indev_drv, lv_indev_data_t * data )
^
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:45:70: error: 'data' was not declared in this scope
void my_touchpad_read( lv_indev_drv_t * indev_drv, lv_indev_data_t * data )
^~~~
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:45:70: note: suggested alternative: 'atan'
void my_touchpad_read( lv_indev_drv_t * indev_drv, lv_indev_data_t * data )
^~~~
atan
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:31:21: error: variable or field 'my_disp_flush' declared void
void my_disp_flush( lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p )
^~~~~~~~~~~~~
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:31:21: error: 'lv_disp_drv_t' was not declared in this scope
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:31:21: note: suggested alternative: 'lv_fs_drv_t'
void my_disp_flush( lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p )
^~~~~~~~~~~~~
lv_fs_drv_t
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:31:36: error: 'disp_drv' was not declared in this scope
void my_disp_flush( lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p )
^~~~~~~~
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:31:46: error: expected primary-expression before 'const'
void my_disp_flush( lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t color_p )
^~~~~
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:31:80: error: expected primary-expression before '
' token
void my_disp_flush( lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p )
^
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:31:81: error: 'color_p' was not declared in this scope
void my_disp_flush( lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p )
^~~~~~~
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:31:81: note: suggested alternative: 'lv_color_t'
void my_disp_flush( lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t color_p )
^~~~~~~
lv_color_t
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:45:24: error: variable or field 'my_touchpad_read' declared void
void my_touchpad_read( lv_indev_drv_t * indev_drv, lv_indev_data_t * data )
^~~~~~~~~~~~~~
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:45:24: error: 'lv_indev_drv_t' was not declared in this scope
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:45:24: note: suggested alternative: 'lv_indev_data_t'
void my_touchpad_read( lv_indev_drv_t * indev_drv, lv_indev_data_t * data )
^~~~~~~~~~~~~~
lv_indev_data_t
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:45:41: error: 'indev_drv' was not declared in this scope
void my_touchpad_read( lv_indev_drv_t * indev_drv, lv_indev_data_t * data )
^~~~~~~~~
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:45:68: error: expected primary-expression before '
' token
void my_touchpad_read( lv_indev_drv_t * indev_drv, lv_indev_data_t * data )
^
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:45:70: error: 'data' was not declared in this scope
void my_touchpad_read( lv_indev_drv_t * indev_drv, lv_indev_data_t * data )
^~~~
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:45:70: note: suggested alternative: 'atan'
void my_touchpad_read( lv_indev_drv_t * indev_drv, lv_indev_data_t * data )
^~~~
atan
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino: In function 'void setup()':
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:94:9: error: 'class TFT_eSPI' has no member named 'setTouch'
tft.setTouch( calData );
^~~~~~~~
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:96:29: error: 'draw_buf' was not declared in this scope
lv_disp_draw_buf_init( &draw_buf, buf, NULL, screenWidth * screenHeight / 10 );
^~~~~~~~
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:96:29: note: suggested alternative: 'lv_draw_buf_t'
lv_disp_draw_buf_init( &draw_buf, buf, NULL, screenWidth * screenHeight / 10 );
^~~~~~~~
lv_draw_buf_t
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:96:5: error: 'lv_disp_draw_buf_init' was not declared in this scope
lv_disp_draw_buf_init( &draw_buf, buf, NULL, screenWidth * screenHeight / 10 );
^~~~~~~~~~~~~~~~~~~~~
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:96:5: note: suggested alternative: 'lv_draw_buf_init'
lv_disp_draw_buf_init( &draw_buf, buf, NULL, screenWidth * screenHeight / 10 );
^~~~~~~~~~~~~~~~~~~~~
lv_draw_buf_init
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:99:12: error: 'lv_disp_drv_t' does not name a type; did you mean 'lv_fs_drv_t'?
static lv_disp_drv_t disp_drv;
^~~~~~~~~~~~~
lv_fs_drv_t
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:100:24: error: 'disp_drv' was not declared in this scope
lv_disp_drv_init( &disp_drv );
^~~~~~~~
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:100:5: error: 'lv_disp_drv_init' was not declared in this scope
lv_disp_drv_init( &disp_drv );
^~~~~~~~~~~~~~~~
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:100:5: note: suggested alternative: 'lv_fs_drv_init'
lv_disp_drv_init( &disp_drv );
^~~~~~~~~~~~~~~~
lv_fs_drv_init
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:104:25: error: 'my_disp_flush' was not declared in this scope
disp_drv.flush_cb = my_disp_flush;
^~~~~~~~~~~~~
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:106:5: error: 'lv_disp_drv_register' was not declared in this scope
lv_disp_drv_register( &disp_drv );
^~~~~~~~~~~~~~~~~~~~
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:106:5: note: suggested alternative: 'lv_fs_drv_register'
lv_disp_drv_register( &disp_drv );
^~~~~~~~~~~~~~~~~~~~
lv_fs_drv_register
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:109:12: error: 'lv_indev_drv_t' does not name a type; did you mean 'lv_indev_data_t'?
static lv_indev_drv_t indev_drv;
^~~~~~~~~~~~~~
lv_indev_data_t
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:110:25: error: 'indev_drv' was not declared in this scope
lv_indev_drv_init( &indev_drv );
^~~~~~~~~
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:110:5: error: 'lv_indev_drv_init' was not declared in this scope
lv_indev_drv_init( &indev_drv );
^~~~~~~~~~~~~~~~~
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:110:5: note: suggested alternative: 'lv_fs_drv_init'
lv_indev_drv_init( &indev_drv );
^~~~~~~~~~~~~~~~~
lv_fs_drv_init
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:112:25: error: 'my_touchpad_read' was not declared in this scope
indev_drv.read_cb = my_touchpad_read;
^~~~~~~~~~~~~~~~
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:112:25: note: suggested alternative: 'touchRead'
indev_drv.read_cb = my_touchpad_read;
^~~~~~~~~~~~~~~~
touchRead
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:113:5: error: 'lv_indev_drv_register' was not declared in this scope
lv_indev_drv_register( &indev_drv );
^~~~~~~~~~~~~~~~~~~~~
C:\Users\paolo\Documents\Arduino\LVGL_Arduino1\LVGL_Arduino1.ino:113:5: note: suggested alternative: 'lv_fs_drv_register'
lv_indev_drv_register( &indev_drv );
^~~~~~~~~~~~~~~~~~~~~
lv_fs_drv_register

exit status 1

Compilation error: 'lv_disp_draw_buf_t' does not name a type; did you mean 'lv_draw_buf_t'?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment