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 }