acid-drop

- Hacking the planet from a LilyGo T-Deck using custom firmware
git clone git://git.acid.vegas/acid-drop.git
Log | Files | Refs | Archive | README | LICENSE

ImgViewerPROGMEM.ino (3827B)

      1 /*******************************************************************************
      2  * PROGMEM Image Viewer
      3  * This is a simple PROGMEM bitmap image viewer example
      4  * Image Source: https://support.arduino.cc/hc/en-us/articles/360020652100
      5  *
      6  * How to create custom image:
      7  * 1. Open image ith GIMP
      8  * 2. Export Image as C-Source
      9  * 3. Uncheck all option and check "Save as RGB565 (16-bit)"
     10  * 4. Revise exported file just like "Arduino_UNO_Rev3_Ok.c"
     11  ******************************************************************************/
     12 #include "Arduino_UNO_Rev3_Ok.c"
     13 #define IMG_WIDTH 100
     14 #define IMG_HEIGHT 71
     15 
     16 /*******************************************************************************
     17  * Start of Arduino_GFX setting
     18  *
     19  * Arduino_GFX try to find the settings depends on selected board in Arduino IDE
     20  * Or you can define the display dev kit not in the board list
     21  * Defalult pin list for non display dev kit:
     22  * Arduino Nano, Micro and more: CS:  9, DC:  8, RST:  7, BL:  6, SCK: 13, MOSI: 11, MISO: 12
     23  * ESP32 various dev board     : CS:  5, DC: 27, RST: 33, BL: 22, SCK: 18, MOSI: 23, MISO: nil
     24  * ESP32-C3 various dev board  : CS:  7, DC:  2, RST:  1, BL:  3, SCK:  4, MOSI:  6, MISO: nil
     25  * ESP32-S2 various dev board  : CS: 34, DC: 38, RST: 33, BL: 21, SCK: 36, MOSI: 35, MISO: nil
     26  * ESP32-S3 various dev board  : CS: 40, DC: 41, RST: 42, BL: 48, SCK: 36, MOSI: 35, MISO: nil
     27  * ESP8266 various dev board   : CS: 15, DC:  4, RST:  2, BL:  5, SCK: 14, MOSI: 13, MISO: 12
     28  * Raspberry Pi Pico dev board : CS: 17, DC: 27, RST: 26, BL: 28, SCK: 18, MOSI: 19, MISO: 16
     29  * RTL8720 BW16 old patch core : CS: 18, DC: 17, RST:  2, BL: 23, SCK: 19, MOSI: 21, MISO: 20
     30  * RTL8720_BW16 Official core  : CS:  9, DC:  8, RST:  6, BL:  3, SCK: 10, MOSI: 12, MISO: 11
     31  * RTL8722 dev board           : CS: 18, DC: 17, RST: 22, BL: 23, SCK: 13, MOSI: 11, MISO: 12
     32  * RTL8722_mini dev board      : CS: 12, DC: 14, RST: 15, BL: 13, SCK: 11, MOSI:  9, MISO: 10
     33  * Seeeduino XIAO dev board    : CS:  3, DC:  2, RST:  1, BL:  0, SCK:  8, MOSI: 10, MISO:  9
     34  * Teensy 4.1 dev board        : CS: 39, DC: 41, RST: 40, BL: 22, SCK: 13, MOSI: 11, MISO: 12
     35  ******************************************************************************/
     36 #include <Arduino_GFX_Library.h>
     37 
     38 #define GFX_BL DF_GFX_BL // default backlight pin, you may replace DF_GFX_BL to actual backlight pin
     39 
     40 /* More dev device declaration: https://github.com/moononournation/Arduino_GFX/wiki/Dev-Device-Declaration */
     41 #if defined(DISPLAY_DEV_KIT)
     42 Arduino_GFX *gfx = create_default_Arduino_GFX();
     43 #else /* !defined(DISPLAY_DEV_KIT) */
     44 
     45 /* More data bus class: https://github.com/moononournation/Arduino_GFX/wiki/Data-Bus-Class */
     46 Arduino_DataBus *bus = create_default_Arduino_DataBus();
     47 
     48 /* More display class: https://github.com/moononournation/Arduino_GFX/wiki/Display-Class */
     49 Arduino_GFX *gfx = new Arduino_ILI9341(bus, DF_GFX_RST, 3 /* rotation */, false /* IPS */);
     50 
     51 #endif /* !defined(DISPLAY_DEV_KIT) */
     52 /*******************************************************************************
     53  * End of Arduino_GFX setting
     54  ******************************************************************************/
     55 
     56 void setup()
     57 {
     58   Serial.begin(115200);
     59   // Serial.setDebugOutput(true);
     60   // while(!Serial);
     61   Serial.println("PROGMEM Image Viewer");
     62 
     63 #ifdef GFX_EXTRA_PRE_INIT
     64   GFX_EXTRA_PRE_INIT();
     65 #endif
     66 
     67   // Init Display
     68   gfx->begin();
     69   gfx->fillScreen(BLACK);
     70 
     71 #ifdef GFX_BL
     72   pinMode(GFX_BL, OUTPUT);
     73   digitalWrite(GFX_BL, HIGH);
     74 #endif
     75 
     76   gfx->draw16bitRGBBitmap(0, 0, (const uint16_t *)Arduino_UNO_Rev3_Ok, IMG_WIDTH, IMG_HEIGHT);
     77 
     78   delay(5000); // 5 seconds
     79 }
     80 
     81 void loop()
     82 {
     83   int16_t x = random(gfx->width());
     84   int16_t y = random(gfx->height());
     85   gfx->draw16bitRGBBitmap(x, y, (const uint16_t *)Arduino_UNO_Rev3_Ok, IMG_WIDTH, IMG_HEIGHT);
     86 
     87   delay(1000); // 1 second
     88 }