Oled display sh1106

Hey! Oled display sh1106 is not working as it should. I'm trying to create a moving image from sequential gifs and this is what the display is showing me.

Ukázka kódu

here's my code:

#include <U8glib.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_I2C_ADDR 0x3C 
#define SCREEN_WIDTH 128     
#define SCREEN_HEIGHT 64     
#define OLED_RST_PIN -1

Adafruit_SSD1306 display(128, 64, &Wire, OLED_RST_PIN);

#define FRAME_DELAY (42)
#define FRAME_WIDTH (64)
#define FRAME_HEIGHT (64)
#define FRAME_COUNT (sizeof(frames) / sizeof(frames[0]))
const byte PROGMEM frames[][512] = {
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,7,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,240,0,0,0,0,0,0,127,248,0,0,0,0,0,0,248,60,0,0,0,0,0,3,224,28,0,0,0,0,0,7,128,14,0,0,0,0,0,15,0,15,0,0,0,0,0,62,0,15,0,0,0,0,0,56,0,31,128,0,0,0,0,112,112,29,192,0,0,0,0,224,240,25,224,0,0,0,0,227,240,24,252,0,0,0,0,199,240,56,127,128,0,0,1,199,96,60,31,192,0,0,1,206,96,62,1,224,0,0,3,142,224,119,128,224,0,0,3,156,224,115,248,224,0,0,3,28,192,113,255,224,0,0,7,24,192,96,63,192,0,0,6,57,192,224,3,128,0,0,7,57,192,224,0,0,0,0,7,241,192,224,0,0,0,0,3,225,192,112,0,0,0,0,0,129,224,120,0,0,0,0,0,3,240,56,0,0,0,0,0,3,248,28,0,0,0,0,0,3,188,14,0,0,0,0,0,3,30,15,0,0,0,0,0,3,15,7,0,0,0,0,0,7,15,131,128,0,0,0,0,7,31,195,128,0,0,0,0,14,28,225,128,0,0,0,0,30,24,225,128,0,0,0,0,28,56,97,192,0,0,0,0,56,56,113,192,0,0,0,0,112,112,112,192,0,0,0,0,240,240,112,192,0,0,0,0,224,224,48,224,0,0,0,1,193,192,56,224,0,0,0,3,131,128,56,96,0,0,0,3,135,128,56,96,0,0,0,3,143,0,56,96,0,0,0,3,158,0,28,224,0,0,0,1,252,0,15,224,0,0,0,0,248,0,15,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,7,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,240,0,0,0,0,0,0,127,248,0,0,0,0,0,0,248,60,0,0,0,0,0,1,224,28,0,0,0,0,0,7,128,14,0,0,0,0,0,15,0,15,0,0,0,0,0,30,0,15,0,0,0,0,0,60,0,31,128,0,0,0,0,112,112,29,192,0,0,0,0,112,240,25,192,0,0,0,0,225,240,24,248,0,0,0,0,227,240,56,255,0,0,0,0,199,96,60,31,128,0,0,1,198,96,62,3,192,0,0,1,206,224,127,0,224,0,0,3,142,224,119,240,224,0,0,3,156,192,115,255,224,0,0,3,28,192,96,127,192,0,0,7,25,192,224,7,128,0,0,7,57,192,224,0,0,0,0,3,241,192,224,0,0,0,0,3,241,192,112,0,0,0,0,0,193,224,120,0,0,0,0,0,3,224,56,0,0,0,0,0,3,248,28,0,0,0,0,0,3,188,14,0,0,0,0,0,3,158,14,0,0,0,0,0,3,15,7,0,0,0,0,0,3,15,131,0,0,0,0,0,7,15,195,128,0,0,0,0,15,29,195,128,0,0,0,0,14,28,225,128,0,0,0,0,28,24,225,192,0,0,0,0,56,56,97,192,0,0,0,0,120,120,112,192,0,0,0,0,112,112,112,192,0,0,0,0,224,224,112,224,0,0,0,1,193,192,48,224,0,0,0,1,131,128,56,96,0,0,0,3,135,128,56,96,0,0,0,1,143,0,56,96,0,0,0,1,206,0,28,224,0,0,0,1,254,0,15,224,0,0,0,0,248,0,15,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,7,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,128,0,0,0,0,0,0,31,240,0,0,0,0,0,0,127,248,0,0,0,0,0,0,248,60,0,0,0,0,0,1,224,28,0,0,0,0,0,3,192,14,0,0,0,0,0,15,0,14,0,0,0,0,0,30,0,15,0,0,0,0,0,60,16,31,128,0,0,0,0,56,120,31,128,0,0,0,0,112,240,25,192,0,0,0,0,113,240,25,224,0,0,0,0,99,240,56,252,0,0,0,0,227,224,56,127,0,0,0,0,231,224,60,15,128,0,0,0,199,224,126,3,128,0,0,1,198,224,119,193,192,0,0,1,206,192,119,249,192,0,0,3,143,192,97,255,128,0,0,3,157,192,224,31,128,0,0,3,157,192,224,0,0,0,0,3,249,192,224,0,0,0,0,1,249,192,112,0,0,0,0,0,241,224,112,0,0,0,0,0,1,224,56,0,0,0,0,0,3,240,28,0,0,0,0,0,3,184,28,0,0,0,0,0,3,156,14,0,0,0,0,0,3,142,7,0,0,0,0,0,3,143,7,0,0,0,0,0,3,15,131,0,0,0,0,0,7,15,195,128,0,0,0,0,14,29,195,128,0,0,0,0,30,28,225,128,0,0,0,0,60,28,225,192,0,0,0,0,56,56,97,192,0,0,0,0,112,112,112,192,0,0,0,0,224,224,112,224,0,0,0,1,193,224,48,224,0,0,0,1,195,192,56,96,0,0,0,1,195,128,56,96,0,0,0,1,199,0,56,96,0,0,0,1,254,0,28,224,0,0,0,0,252,0,15,224,0,0,0,0,120,0,15,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,7,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,192,0,0,0,0,0,0,63,240,0,0,0,0,0,0,127,248,0,0,0,0,0,0,240,60,0,0,0,0,0,1,224,28,0,0,0,0,0,3,192,14,0,0,0,0,0,7,128,14,0,0,0,0,0,15,0,15,0,0,0,0,0,28,24,31,0,0,0,0,0,56,56,31,128,0,0,0,0,56,112,27,128,0,0,0,0,49,240,57,192,0,0,0,0,113,240,57,240,0,0,0,0,115,224,56,252,0,0,0,0,99,224,60,62,0,0,0,0,99,224,124,15,0,0,0,0,231,224,126,3,128,0,0,0,231,192,127,195,128,0,0,0,199,192,103,255,0,0,0,1,207,192,224,255,0,0,0,1,207,192,224,28,0,0,0,1,223,192,224,0,0,0,0,0,253,192,112,0,0,0,0,0,121,224,112,0,0,0,0,0,1,224,56,0,0,0,0,0,1,240,56,0,0,0,0,0,1,184,28,0,0,0,0,0,1,156,28,0,0,0,0,0,1,158,14,0,0,0,0,0,3,142,6,0,0,0,0,0,3,143,7,0,0,0,0,0,3,143,135,0,0,0,0,0,7,15,131,128,0,0,0,0,14,13,195,128,0,0,0,0,28,28,193,128,0,0,0,0,56,60,225,192,0,0,0,0,112,120,225,192,0,0,0,0,240,112,112,224,0,0,0,0,224,224,112,224,0,0,0,0,193,192,56,224,0,0,0,0,195,128,56,96,0,0,0,0,231,0,60,96,0,0,0,0,255,0,31,224,0,0,0,0,126,0,15,192,0,0,0,0,0,0,7,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,255,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,192,0,0,0,0,0,0,63,240,0,0,0,0,0,0,127,248,0,0,0,0,0,0,240,28,0,0,0,0,0,1,224,28,0,0,0,0,0,3,192,14,0,0,0,0,0,7,128,14,0,0,0,0,0,15,0,14,0,0,0,0,0,30,24,31,0,0,0,0,0,28,56,31,0,0,0,0,0,56,112,31,0,0,0,0,0,56,240,59,128,0,0,0,0,57,240,59,192,0,0,0,0,57,224,57,240,0,0,0,0,49,224,56,124,0,0,0,0,51,224,120,62,0,0,0,0,115,224,124,14,0,0,0,0,115,192,127,7,0,0,0,0,115,192,111,238,0,0,0,0,99,192,227,254,0,0,0,0,103,192,224,124,0,0,0,0,103,192,224,0,0,0,0,0,127,192,112,0,0,0,0,0,127,224,112,0,0,0,0,0,25,224,48,0,0,0,0,0,1,240,56,0,0,0,0,0,1,248,24,0,0,0,0,0,1,248,28,0,0,0,0,0,1,220,28,0,0,0,0,0,1,206,14,0,0,0,0,0,1,206,14,0,0,0,0,0,3,143,7,0,0,0,0,0,7,143,135,0,0,0,0,0,15,15,131,128,0,0,0,0,30,15,195,128,0,0,0,0,60,29,193,192,0,0,0,0,120,56,225,192,0,0,0,0,112,120,96,224,0,0,0,0,224,240,112,224,0,0,0,0,225,224,56,96,0,0,0,0,227,192,56,112,0,0,0,0,127,128,24,96,0,0,0,0,127,0,31,224,0,0,0,0,28,0,15,192,0,0,0,0,0,0,7,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,135,0,0,0,0,0,0,7,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,3,255,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,224,0,0,0,0,0,0,63,240,0,0,0,0,0,0,127,248,0,0,0,0,0,0,240,28,0,0,0,0,0,0,224,28,0,0,0,0,0,1,192,12,0,0,0,0,0,3,128,12,0,0,0,0,0,7,8,28,0,0,0,0,0,15,28,30,0,0,0,0,0,14,56,30,0,0,0,0,0,28,112,30,0,0,0,0,0,28,240,63,0,0,0,0,0,28,224,63,128,0,0,0,0,24,224,51,192,0,0,0,0,25,224,49,224,0,0,0,0,25,224,120,240,0,0,0,0,57,224,124,112,0,0,0,0,57,192,127,48,0,0,0,0,57,192,239,240,0,0,0,0,57,192,227,240,0,0,0,0,59,192,224,224,0,0,0,0,59,192,224,0,0,0,0,0,63,192,96,0,0,0,0,0,31,224,112,0,0,0,0,0,1,224,112,0,0,0,0,0,1,240,48,0,0,0,0,0,1,240,56,0,0,0,0,0,0,248,56,0,0,0,0,0,0,220,24,0,0,0,0,0,0,220,28,0,0,0,0,0,1,206,28,0,0,0,0,0,7,206,12,0,0,0,0,0,15,15,14,0,0,0,0,0,30,15,14,0,0,0,0,0,60,31,135,0,0,0,0,0,120,63,135,0,0,0,0,0,112,121,195,0,0,0,0,0,225,225,195,128,0,0,0,0,227,192,195,128,0,0,0,0,127,128,225,128,0,0,0,0,127,0,225,128,0,0,0,0,28,0,113,128,0,0,0,0,0,0,127,128,0,0,0,0,0,0,63,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,124,120,0,0,0,0,0,0,240,28,0,0,0,0,0,0,224,28,0,0,0,0,0,1,192,12,0,0,0,0,0,3,128,28,0,0,0,0,0,3,140,28,0,0,0,0,0,7,28,28,0,0,0,0,0,14,56,28,0,0,0,0,0,14,56,28,0,0,0,0,0,12,112,60,0,0,0,0,0,12,240,62,0,0,0,0,0,12,224,63,0,0,0,0,0,12,224,55,128,0,0,0,0,12,224,115,128,0,0,0,0,12,224,121,192,0,0,0,0,12,224,125,192,0,0,0,0,28,224,255,128,0,0,0,0,28,224,239,0,0,0,0,0,28,192,224,0,0,0,0,0,15,192,224,0,0,0,0,0,15,192,224,0,0,0,0,0,7,224,96,0,0,0,0,0,0,224,112,0,0,0,0,0,0,240,112,0,0,0,0,0,0,240,112,0,0,0,0,0,0,248,48,0,0,0,0,0,0,248,48,0,0,0,0,0,1,252,56,0,0,0,0,0,3,252,56,0,0,0,0,0,15,140,24,0,0,0,0,0,62,14,28,0,0,0,0,0,124,30,28,0,0,0,0,0,112,62,28,0,0,0,0,0,96,255,12,0,0,0,0,0,97,231,14,0,0,0,0,0,127,195,14,0,0,0,0,0,127,3,134,0,0,0,0,0,62,3,134,0,0,0,0,0,0,1,134,0,0,0,0,0,0,1,206,0,0,0,0,0,0,1,254,0,0,0,0,0,0,0,252,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,223,0,0,0,0,0,0,7,7,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,3,128,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,56,0,0,0,0,0,0,112,28,0,0,0,0,0,0,224,12,0,0,0,0,0,1,192,12,0,0,0,0,0,1,192,12,0,0,0,0,0,3,140,28,0,0,0,0,0,3,156,28,0,0,0,0,0,7,28,24,0,0,0,0,0,6,56,24,0,0,0,0,0,6,112,56,0,0,0,0,0,14,112,56,0,0,0,0,0,6,112,56,0,0,0,0,0,6,112,124,0,0,0,0,0,6,112,124,0,0,0,0,0,6,112,124,0,0,0,0,0,6,112,124,0,0,0,0,0,6,112,252,0,0,0,0,0,6,112,248,0,0,0,0,0,7,112,224,0,0,0,0,0,7,240,224,0,0,0,0,0,3,224,224,0,0,0,0,0,1,224,224,0,0,0,0,0,0,224,96,0,0,0,0,0,0,224,96,0,0,0,0,0,0,112,96,0,0,0,0,0,0,112,96,0,0,0,0,0,0,240,112,0,0,0,0,0,3,248,112,0,0,0,0,0,31,248,112,0,0,0,0,0,62,28,112,0,0,0,0,0,120,28,48,0,0,0,0,0,96,60,48,0,0,0,0,0,224,252,56,0,0,0,0,0,227,252,56,0,0,0,0,0,127,206,56,0,0,0,0,0,63,14,24,0,0,0,0,0,16,14,24,0,0,0,0,0,0,6,28,0,0,0,0,0,0,6,24,0,0,0,0,0,0,7,56,0,0,0,0,0,0,7,248,0,0,0,0,0,0,3,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,7,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,56,0,0,0,0,0,0,112,28,0,0,0,0,0,0,224,12,0,0,0,0,0,0,224,12,0,0,0,0,0,1,192,12,0,0,0,0,0,1,206,28,0,0,0,0,0,3,142,28,0,0,0,0,0,3,156,24,0,0,0,0,0,7,24,24,0,0,0,0,0,7,56,56,0,0,0,0,0,7,56,56,0,0,0,0,0,7,48,48,0,0,0,0,0,7,56,112,0,0,0,0,0,3,56,112,0,0,0,0,0,3,56,112,0,0,0,0,0,3,56,112,0,0,0,0,0,3,152,224,0,0,0,0,0,3,152,224,0,0,0,0,0,3,248,224,0,0,0,0,0,1,248,224,0,0,0,0,0,1,240,224,0,0,0,0,0,0,192,224,0,0,0,0,0,0,224,224,0,0,0,0,0,0,224,224,0,0,0,0,0,0,96,224,0,0,0,0,0,0,112,224,0,0,0,0,0,7,240,224,0,0,0,0,0,63,240,224,0,0,0,0,0,126,48,224,0,0,0,0,0,240,56,224,0,0,0,0,0,224,56,96,0,0,0,0,0,192,248,96,0,0,0,0,0,239,248,96,0,0,0,0,0,127,248,96,0,0,0,0,0,62,24,96,0,0,0,0,0,0,24,96,0,0,0,0,0,0,24,112,0,0,0,0,0,0,24,112,0,0,0,0,0,0,24,112,0,0,0,0,0,0,28,224,0,0,0,0,0,0,31,224,0,0,0,0,0,0,15,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,255,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,56,0,0,0,0,0,0,112,28,0,0,0,0,0,0,224,12,0,0,0,0,0,0,224,12,0,0,0,0,0,0,192,12,0,0,0,0,0,1,198,28,0,0,0,0,0,1,206,28,0,0,0,0,0,1,140,24,0,0,0,0,0,3,156,24,0,0,0,0,0,3,28,56,0,0,0,0,0,3,24,56,0,0,0,0,0,3,152,48,0,0,0,0,0,3,156,112,0,0,0,0,0,3,156,112,0,0,0,0,0,1,156,112,0,0,0,0,0,1,204,96,0,0,0,0,0,1,206,224,0,0,0,0,0,1,206,224,0,0,0,0,0,1,238,224,0,0,0,0,0,1,252,192,0,0,0,0,0,1,252,192,0,0,0,0,0,1,192,192,0,0,0,0,0,0,192,192,0,0,0,0,0,0,224,192,0,0,0,0,0,0,224,192,0,0,0,0,0,0,224,192,0,0,0,0,0,0,224,192,0,0,0,0,0,1,224,192,0,0,0,0,0,7,241,192,0,0,0,0,0,31,113,192,0,0,0,0,0,30,113,192,0,0,0,0,0,28,113,192,0,0,0,0,0,28,241,192,0,0,0,0,0,31,241,192,0,0,0,0,0,15,241,192,0,0,0,0,0,0,113,192,0,0,0,0,0,0,113,192,0,0,0,0,0,0,113,192,0,0,0,0,0,0,113,192,0,0,0,0,0,0,113,192,0,0,0,0,0,0,63,128,0,0,0,0,0,0,31,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,7,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,60,120,0,0,0,0,0,0,112,28,0,0,0,0,0,0,96,28,0,0,0,0,0,0,224,12,0,0,0,0,0,0,224,28,0,0,0,0,0,0,198,28,0,0,0,0,0,1,198,28,0,0,0,0,0,1,206,28,0,0,0,0,0,1,206,24,0,0,0,0,0,1,204,56,0,0,0,0,0,3,156,56,0,0,0,0,0,1,156,48,0,0,0,0,0,1,206,48,0,0,0,0,0,1,206,112,0,0,0,0,0,1,198,112,0,0,0,0,0,0,231,96,0,0,0,0,0,1,231,224,0,0,0,0,0,1,227,224,0,0,0,0,0,1,247,224,0,0,0,0,0,1,255,192,0,0,0,0,0,1,255,192,0,0,0,0,0,1,200,192,0,0,0,0,0,1,193,192,0,0,0,0,0,0,193,192,0,0,0,0,0,0,193,192,0,0,0,0,0,0,193,192,0,0,0,0,0,0,193,128,0,0,0,0,0,0,193,128,0,0,0,0,0,0,227,128,0,0,0,0,0,1,227,192,0,0,0,0,0,3,227,128,0,0,0,0,0,3,227,128,0,0,0,0,0,3,195,128,0,0,0,0,0,3,195,128,0,0,0,0,0,3,195,128,0,0,0,0,0,0,195,128,0,0,0,0,0,0,195,128,0,0,0,0,0,0,195,0,0,0,0,0,0,0,195,0,0,0,0,0,0,0,199,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,126,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,7,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,224,0,0,0,0,0,0,31,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,112,28,0,0,0,0,0,0,112,28,0,0,0,0,0,0,96,12,0,0,0,0,0,0,226,12,0,0,0,0,0,0,231,28,0,0,0,0,0,1,231,28,0,0,0,0,0,1,198,28,0,0,0,0,0,1,198,24,0,0,0,0,0,3,206,56,0,0,0,0,0,3,206,56,0,0,0,0,0,3,206,48,0,0,0,0,0,3,199,48,0,0,0,0,0,3,231,112,0,0,0,0,0,3,227,240,0,0,0,0,0,3,243,224,0,0,0,0,0,1,241,224,0,0,0,0,0,1,249,224,0,0,0,0,0,1,249,224,0,0,0,0,0,1,255,192,0,0,0,0,0,1,223,192,0,0,0,0,0,1,199,192,0,0,0,0,0,1,193,192,0,0,0,0,0,1,193,128,0,0,0,0,0,1,195,192,0,0,0,0,0,1,195,192,0,0,0,0,0,1,195,192,0,0,0,0,0,1,195,224,0,0,0,0,0,1,199,224,0,0,0,0,0,1,135,224,0,0,0,0,0,1,135,192,0,0,0,0,0,1,135,128,0,0,0,0,0,1,135,0,0,0,0,0,0,3,135,0,0,0,0,0,0,3,134,0,0,0,0,0,0,3,134,0,0,0,0,0,0,3,142,0,0,0,0,0,0,3,142,0,0,0,0,0,0,3,142,0,0,0,0,0,0,3,142,0,0,0,0,0,0,3,252,0,0,0,0,0,0,1,248,0,0,0,0,0,0,0,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,0,0,0,0,0,0,3,254,0,0,0,0,0,0,3,223,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,3,128,0,0,0,0,0,7,135,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,192,0,0,0,0,0,0,31,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,112,28,0,0,0,0,0,0,112,28,0,0,0,0,0,0,96,12,0,0,0,0,0,0,224,12,0,0,0,0,0,3,227,12,0,0,0,0,0,7,227,28,0,0,0,0,0,7,231,28,0,0,0,0,0,7,231,24,0,0,0,0,0,6,231,56,0,0,0,0,0,6,199,56,0,0,0,0,0,14,199,56,0,0,0,0,0,14,231,48,0,0,0,0,0,12,227,240,0,0,0,0,0,14,241,240,0,0,0,0,0,15,241,224,0,0,0,0,0,7,248,224,0,0,0,0,0,1,220,224,0,0,0,0,0,1,220,96,0,0,0,0,0,1,206,224,0,0,0,0,0,1,207,224,0,0,0,0,0,1,135,192,0,0,0,0,0,1,129,192,0,0,0,0,0,1,131,192,0,0,0,0,0,3,131,224,0,0,0,0,0,3,135,96,0,0,0,0,0,3,135,112,0,0,0,0,0,3,135,48,0,0,0,0,0,3,15,48,0,0,0,0,0,3,14,112,0,0,0,0,0,3,14,112,0,0,0,0,0,7,14,224,0,0,0,0,0,7,12,224,0,0,0,0,0,7,13,192,0,0,0,0,0,7,31,192,0,0,0,0,0,6,31,128,0,0,0,0,0,6,31,0,0,0,0,0,0,14,24,0,0,0,0,0,0,14,24,0,0,0,0,0,0,14,56,0,0,0,0,0,0,7,248,0,0,0,0,0,0,7,240,0,0,0,0,0,0,3,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,192,0,0,0,0,0,0,31,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,60,0,0,0,0,0,0,240,28,0,0,0,0,0,1,224,12,0,0,0,0,0,3,224,12,0,0,0,0,0,7,227,12,0,0,0,0,0,15,99,28,0,0,0,0,0,14,99,28,0,0,0,0,0,12,227,24,0,0,0,0,0,28,227,56,0,0,0,0,0,28,231,56,0,0,0,0,0,24,231,184,0,0,0,0,0,57,227,240,0,0,0,0,0,57,241,240,0,0,0,0,0,57,248,240,0,0,0,0,0,63,248,112,0,0,0,0,0,31,220,120,0,0,0,0,0,15,206,56,0,0,0,0,0,1,199,56,0,0,0,0,0,1,199,248,0,0,0,0,0,1,195,240,0,0,0,0,0,1,129,224,0,0,0,0,0,1,129,224,0,0,0,0,0,1,131,224,0,0,0,0,0,3,131,240,0,0,0,0,0,3,131,112,0,0,0,0,0,3,135,56,0,0,0,0,0,3,135,56,0,0,0,0,0,3,135,24,0,0,0,0,0,3,15,56,0,0,0,0,0,7,15,56,0,0,0,0,0,7,15,56,0,0,0,0,0,7,31,56,0,0,0,0,0,6,31,56,0,0,0,0,0,14,31,48,0,0,0,0,0,14,63,112,0,0,0,0,0,12,63,240,0,0,0,0,0,28,51,224,0,0,0,0,0,28,112,0,0,0,0,0,0,28,112,0,0,0,0,0,0,31,224,0,0,0,0,0,0,15,224,0,0,0,0,0,0,7,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,3,255,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,128,0,0,0,0,0,0,31,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,60,0,0,0,0,0,0,240,28,0,0,0,0,0,3,224,12,0,0,0,0,0,7,224,12,0,0,0,0,0,15,99,12,0,0,0,0,0,28,99,28,0,0,0,0,0,28,99,28,0,0,0,0,0,24,227,24,0,0,0,0,0,56,227,24,0,0,0,0,0,57,227,184,0,0,0,0,0,49,227,248,0,0,0,0,0,113,241,240,0,0,0,0,0,115,240,240,0,0,0,0,0,99,252,120,0,0,0,0,0,127,254,60,0,0,0,0,0,63,207,28,0,0,0,0,0,29,199,142,0,0,0,0,0,1,195,204,0,0,0,0,0,1,193,252,0,0,0,0,0,1,193,248,0,0,0,0,0,1,129,240,0,0,0,0,0,1,129,224,0,0,0,0,0,1,131,240,0,0,0,0,0,1,131,184,0,0,0,0,0,3,131,56,0,0,0,0,0,3,135,28,0,0,0,0,0,3,135,28,0,0,0,0,0,3,135,140,0,0,0,0,0,3,143,140,0,0,0,0,0,7,15,140,0,0,0,0,0,7,15,142,0,0,0,0,0,14,29,142,0,0,0,0,0,14,25,142,0,0,0,0,0,28,57,142,0,0,0,0,0,28,49,206,0,0,0,0,0,56,113,206,0,0,0,0,0,56,113,254,0,0,0,0,0,56,224,252,0,0,0,0,0,48,224,48,0,0,0,0,0,59,192,0,0,0,0,0,0,63,128,0,0,0,0,0,0,31,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,7,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,60,0,0,0,0,0,1,240,28,0,0,0,0,0,3,240,12,0,0,0,0,0,15,224,12,0,0,0,0,0,30,115,12,0,0,0,0,0,28,115,156,0,0,0,0,0,24,115,156,0,0,0,0,0,56,243,152,0,0,0,0,0,57,243,152,0,0,0,0,0,49,243,184,0,0,0,0,0,113,241,248,0,0,0,0,0,115,240,240,0,0,0,0,0,99,248,120,0,0,0,0,0,231,252,60,0,0,0,0,0,127,222,30,0,0,0,0,0,127,199,135,0,0,0,0,0,61,195,199,0,0,0,0,0,1,193,231,0,0,0,0,0,1,192,254,0,0,0,0,0,1,193,252,0,0,0,0,0,1,129,240,0,0,0,0,0,1,129,240,0,0,0,0,0,1,131,184,0,0,0,0,0,1,131,188,0,0,0,0,0,3,131,28,0,0,0,0,0,3,135,14,0,0,0,0,0,3,135,142,0,0,0,0,0,3,135,134,0,0,0,0,0,3,143,134,0,0,0,0,0,7,15,135,0,0,0,0,0,7,13,199,0,0,0,0,0,14,29,195,0,0,0,0,0,28,24,195,0,0,0,0,0,28,56,195,128,0,0,0,0,56,112,227,128,0,0,0,0,120,112,227,128,0,0,0,0,112,224,227,128,0,0,0,0,112,224,127,128,0,0,0,0,97,192,63,0,0,0,0,0,115,128,30,0,0,0,0,0,127,128,0,0,0,0,0,0,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,7,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,60,0,0,0,0,0,0,240,28,0,0,0,0,0,3,240,12,0,0,0,0,0,7,240,12,0,0,0,0,0,15,115,12,0,0,0,0,0,30,115,156,0,0,0,0,0,28,115,156,0,0,0,0,0,24,243,152,0,0,0,0,0,56,243,152,0,0,0,0,0,49,241,248,0,0,0,0,0,113,241,248,0,0,0,0,0,115,240,248,0,0,0,0,0,99,248,124,0,0,0,0,0,231,252,30,0,0,0,0,0,127,223,15,0,0,0,0,0,127,199,135,0,0,0,0,0,61,195,227,0,0,0,0,0,1,192,247,0,0,0,0,0,1,192,255,0,0,0,0,0,1,193,254,0,0,0,0,0,1,129,240,0,0,0,0,0,1,129,240,0,0,0,0,0,1,131,184,0,0,0,0,0,1,131,156,0,0,0,0,0,3,131,142,0,0,0,0,0,3,135,14,0,0,0,0,0,3,135,134,0,0,0,0,0,3,135,135,0,0,0,0,0,3,143,135,0,0,0,0,0,7,15,195,0,0,0,0,0,15,15,195,128,0,0,0,0,14,28,195,128,0,0,0,0,28,28,225,128,0,0,0,0,60,56,225,192,0,0,0,0,56,112,97,192,0,0,0,0,112,112,113,192,0,0,0,0,112,224,113,192,0,0,0,0,225,192,113,192,0,0,0,0,227,192,63,192,0,0,0,0,227,128,31,128,0,0,0,0,127,0,14,0,0,0,0,0,62,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,7,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,60,0,0,0,0,0,0,240,28,0,0,0,0,0,1,240,12,0,0,0,0,0,3,224,12,0,0,0,0,0,7,243,12,0,0,0,0,0,15,115,156,0,0,0,0,0,14,115,156,0,0,0,0,0,28,115,152,0,0,0,0,0,28,115,152,0,0,0,0,0,56,243,184,0,0,0,0,0,113,241,248,0,0,0,0,0,113,240,240,0,0,0,0,0,99,248,120,0,0,0,0,0,231,252,60,0,0,0,0,0,127,223,14,0,0,0,0,0,127,199,135,0,0,0,0,0,61,195,199,0,0,0,0,0,1,193,254,0,0,0,0,0,1,192,254,0,0,0,0,0,1,193,252,0,0,0,0,0,1,129,240,0,0,0,0,0,1,129,240,0,0,0,0,0,1,129,184,0,0,0,0,0,1,131,156,0,0,0,0,0,1,131,156,0,0,0,0,0,1,131,14,0,0,0,0,0,3,135,14,0,0,0,0,0,3,135,134,0,0,0,0,0,3,135,135,0,0,0,0,0,7,15,135,0,0,0,0,0,7,15,195,0,0,0,0,0,14,29,195,128,0,0,0,0,28,28,195,128,0,0,0,0,60,56,225,128,0,0,0,0,56,112,225,192,0,0,0,0,112,112,97,192,0,0,0,0,112,224,113,192,0,0,0,0,225,192,113,192,0,0,0,0,227,192,63,128,0,0,0,0,119,128,63,128,0,0,0,0,127,0,14,0,0,0,0,0,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,7,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,128,0,0,0,0,0,0,31,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,60,0,0,0,0,0,0,112,28,0,0,0,0,0,0,96,12,0,0,0,0,0,0,96,12,0,0,0,0,0,0,99,12,0,0,0,0,0,0,99,28,0,0,0,0,0,0,227,28,0,0,0,0,0,1,227,24,0,0,0,0,0,1,243,152,0,0,0,0,0,3,243,184,0,0,0,0,0,3,241,248,0,0,0,0,0,7,240,240,0,0,0,0,0,7,248,112,0,0,0,0,0,14,252,56,0,0,0,0,0,14,206,28,0,0,0,0,0,7,199,28,0,0,0,0,0,7,195,156,0,0,0,0,0,1,193,252,0,0,0,0,0,1,193,248,0,0,0,0,0,1,192,240,0,0,0,0,0,1,193,224,0,0,0,0,0,1,193,240,0,0,0,0,0,1,129,240,0,0,0,0,0,1,129,184,0,0,0,0,0,1,131,156,0,0,0,0,0,1,131,156,0,0,0,0,0,1,131,12,0,0,0,0,0,1,135,14,0,0,0,0,0,3,135,14,0,0,0,0,0,7,135,134,0,0,0,0,0,7,15,135,0,0,0,0,0,14,31,135,0,0,0,0,0,28,29,195,0,0,0,0,0,60,57,195,128,0,0,0,0,56,112,195,128,0,0,0,0,112,112,227,128,0,0,0,0,112,224,225,128,0,0,0,0,113,192,241,128,0,0,0,0,123,128,123,128,0,0,0,0,63,128,63,0,0,0,0,0,30,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,7,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,192,0,0,0,0,0,0,31,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,28,0,0,0,0,0,0,112,28,0,0,0,0,0,0,96,12,0,0,0,0,0,0,96,12,0,0,0,0,0,0,99,12,0,0,0,0,0,0,99,28,0,0,0,0,0,0,99,28,0,0,0,0,0,0,99,24,0,0,0,0,0,0,99,56,0,0,0,0,0,0,227,184,0,0,0,0,0,0,115,248,0,0,0,0,0,0,241,240,0,0,0,0,0,0,248,240,0,0,0,0,0,0,252,112,0,0,0,0,0,0,220,112,0,0,0,0,0,1,206,48,0,0,0,0,0,1,199,112,0,0,0,0,0,1,199,240,0,0,0,0,0,1,195,224,0,0,0,0,0,1,192,224,0,0,0,0,0,1,193,224,0,0,0,0,0,1,193,224,0,0,0,0,0,1,193,240,0,0,0,0,0,1,193,240,0,0,0,0,0,1,193,184,0,0,0,0,0,1,193,152,0,0,0,0,0,1,195,156,0,0,0,0,0,1,195,156,0,0,0,0,0,3,195,140,0,0,0,0,0,3,135,14,0,0,0,0,0,7,15,14,0,0,0,0,0,14,15,6,0,0,0,0,0,28,31,135,0,0,0,0,0,60,59,135,0,0,0,0,0,56,113,195,0,0,0,0,0,48,241,195,128,0,0,0,0,57,224,195,128,0,0,0,0,63,192,227,128,0,0,0,0,31,128,227,0,0,0,0,0,15,0,127,0,0,0,0,0,0,0,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,255,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,224,0,0,0,0,0,0,63,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,112,28,0,0,0,0,0,0,112,28,0,0,0,0,0,0,96,12,0,0,0,0,0,0,98,12,0,0,0,0,0,0,231,28,0,0,0,0,0,0,231,28,0,0,0,0,0,0,231,28,0,0,0,0,0,0,231,24,0,0,0,0,0,0,199,56,0,0,0,0,0,0,231,56,0,0,0,0,0,0,231,56,0,0,0,0,0,0,227,176,0,0,0,0,0,0,241,240,0,0,0,0,0,0,241,240,0,0,0,0,0,0,248,240,0,0,0,0,0,1,216,224,0,0,0,0,0,1,220,224,0,0,0,0,0,1,223,224,0,0,0,0,0,1,207,224,0,0,0,0,0,1,193,224,0,0,0,0,0,1,192,224,0,0,0,0,0,1,192,224,0,0,0,0,0,1,193,224,0,0,0,0,0,0,193,240,0,0,0,0,0,0,193,240,0,0,0,0,0,0,193,248,0,0,0,0,0,0,225,248,0,0,0,0,0,0,225,216,0,0,0,0,0,1,195,156,0,0,0,0,0,3,135,156,0,0,0,0,0,7,15,12,0,0,0,0,0,14,15,14,0,0,0,0,0,28,31,14,0,0,0,0,0,60,59,6,0,0,0,0,0,56,115,135,0,0,0,0,0,56,227,135,0,0,0,0,0,31,193,199,0,0,0,0,0,15,129,199,0,0,0,0,0,7,0,199,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,126,0,0,0,0,0,0,0,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,60,124,0,0,0,0,0,0,112,28,0,0,0,0,0,0,112,28,0,0,0,0,0,0,224,12,0,0,0,0,0,0,226,28,0,0,0,0,0,0,231,28,0,0,0,0,0,0,199,28,0,0,0,0,0,1,198,28,0,0,0,0,0,1,206,28,0,0,0,0,0,1,206,60,0,0,0,0,0,1,206,60,0,0,0,0,0,1,206,60,0,0,0,0,0,1,199,60,0,0,0,0,0,0,231,124,0,0,0,0,0,0,227,124,0,0,0,0,0,0,227,236,0,0,0,0,0,1,243,236,0,0,0,0,0,1,243,236,0,0,0,0,0,1,255,236,0,0,0,0,0,1,223,252,0,0,0,0,0,1,204,252,0,0,0,0,0,1,192,224,0,0,0,0,0,0,192,224,0,0,0,0,0,0,224,224,0,0,0,0,0,0,224,224,0,0,0,0,0,0,224,224,0,0,0,0,0,0,96,224,0,0,0,0,0,0,112,240,0,0,0,0,0,0,112,240,0,0,0,0,0,0,225,240,0,0,0,0,0,0,227,240,0,0,0,0,0,1,195,176,0,0,0,0,0,3,199,48,0,0,0,0,0,3,143,56,0,0,0,0,0,7,14,56,0,0,0,0,0,7,30,56,0,0,0,0,0,7,62,24,0,0,0,0,0,7,254,28,0,0,0,0,0,3,246,24,0,0,0,0,0,1,231,56,0,0,0,0,0,0,3,248,0,0,0,0,0,0,1,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,207,0,0,0,0,0,0,7,7,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,60,0,0,0,0,0,0,112,28,0,0,0,0,0,0,96,12,0,0,0,0,0,0,224,12,0,0,0,0,0,0,226,12,0,0,0,0,0,1,199,28,0,0,0,0,0,1,198,30,0,0,0,0,0,1,142,30,0,0,0,0,0,3,142,30,0,0,0,0,0,3,156,62,0,0,0,0,0,3,156,62,0,0,0,0,0,3,140,62,0,0,0,0,0,1,140,118,0,0,0,0,0,1,142,119,0,0,0,0,0,1,206,119,0,0,0,0,0,1,198,115,0,0,0,0,0,1,198,251,128,0,0,0,0,1,230,251,128,0,0,0,0,1,254,255,0,0,0,0,0,1,254,239,0,0,0,0,0,1,252,224,0,0,0,0,0,1,192,224,0,0,0,0,0,0,224,224,0,0,0,0,0,0,224,96,0,0,0,0,0,0,240,96,0,0,0,0,0,0,112,96,0,0,0,0,0,0,120,112,0,0,0,0,0,0,120,112,0,0,0,0,0,0,56,112,0,0,0,0,0,0,56,224,0,0,0,0,0,0,56,224,0,0,0,0,0,0,113,192,0,0,0,0,0,0,113,192,0,0,0,0,0,0,97,192,0,0,0,0,0,0,227,192,0,0,0,0,0,0,227,192,0,0,0,0,0,0,231,192,0,0,0,0,0,0,255,192,0,0,0,0,0,0,126,192,0,0,0,0,0,0,63,192,0,0,0,0,0,0,31,128,0,0,0,0,0,0,15,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,255,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,60,0,0,0,0,0,0,112,28,0,0,0,0,0,0,224,12,0,0,0,0,0,0,224,12,0,0,0,0,0,1,192,12,0,0,0,0,0,1,198,30,0,0,0,0,0,3,142,30,0,0,0,0,0,3,142,30,0,0,0,0,0,7,28,30,0,0,0,0,0,7,28,62,0,0,0,0,0,7,56,63,0,0,0,0,0,7,24,55,0,0,0,0,0,7,24,119,0,0,0,0,0,3,24,115,128,0,0,0,0,3,28,121,192,0,0,0,0,3,28,124,224,0,0,0,0,3,156,254,224,0,0,0,0,3,156,239,224,0,0,0,0,3,220,231,192,0,0,0,0,1,248,225,0,0,0,0,0,1,240,96,0,0,0,0,0,1,192,96,0,0,0,0,0,0,224,112,0,0,0,0,0,0,240,112,0,0,0,0,0,0,240,48,0,0,0,0,0,0,248,48,0,0,0,0,0,0,252,56,0,0,0,0,0,0,124,56,0,0,0,0,0,0,110,56,0,0,0,0,0,0,108,48,0,0,0,0,0,0,108,48,0,0,0,0,0,0,252,112,0,0,0,0,0,0,252,112,0,0,0,0,0,0,252,96,0,0,0,0,0,0,252,224,0,0,0,0,0,0,216,224,0,0,0,0,0,1,216,224,0,0,0,0,0,1,221,192,0,0,0,0,0,1,223,192,0,0,0,0,0,0,255,128,0,0,0,0,0,0,254,0,0,0,0,0,0,0,124,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,255,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,124,0,0,0,0,0,0,112,28,0,0,0,0,0,0,224,12,0,0,0,0,0,1,192,12,0,0,0,0,0,1,192,14,0,0,0,0,0,3,140,30,0,0,0,0,0,7,14,30,0,0,0,0,0,7,28,31,0,0,0,0,0,14,56,31,0,0,0,0,0,14,56,63,0,0,0,0,0,14,112,59,128,0,0,0,0,14,112,59,192,0,0,0,0,14,112,57,224,0,0,0,0,14,112,120,240,0,0,0,0,12,112,124,112,0,0,0,0,12,112,126,56,0,0,0,0,12,112,239,176,0,0,0,0,14,96,227,240,0,0,0,0,14,224,225,240,0,0,0,0,7,224,224,0,0,0,0,0,3,192,96,0,0,0,0,0,1,224,112,0,0,0,0,0,1,224,48,0,0,0,0,0,1,240,56,0,0,0,0,0,0,248,56,0,0,0,0,0,0,252,24,0,0,0,0,0,0,222,28,0,0,0,0,0,0,206,28,0,0,0,0,0,0,199,28,0,0,0,0,0,0,199,28,0,0,0,0,0,1,199,28,0,0,0,0,0,1,199,28,0,0,0,0,0,3,143,24,0,0,0,0,0,3,143,24,0,0,0,0,0,3,15,24,0,0,0,0,0,7,31,24,0,0,0,0,0,7,31,56,0,0,0,0,0,6,31,56,0,0,0,0,0,6,63,248,0,0,0,0,0,7,123,240,0,0,0,0,0,7,241,224,0,0,0,0,0,1,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,207,0,0,0,0,0,0,7,7,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,224,0,0,0,0,0,0,63,240,0,0,0,0,0,0,127,248,0,0,0,0,0,0,240,28,0,0,0,0,0,1,224,28,0,0,0,0,0,1,192,14,0,0,0,0,0,3,128,14,0,0,0,0,0,7,8,30,0,0,0,0,0,14,28,31,0,0,0,0,0,30,56,31,0,0,0,0,0,28,120,27,0,0,0,0,0,28,240,59,128,0,0,0,0,24,224,59,224,0,0,0,0,56,224,57,240,0,0,0,0,57,224,56,124,0,0,0,0,57,224,124,30,0,0,0,0,57,224,124,14,0,0,0,0,49,192,127,7,0,0,0,0,49,192,239,254,0,0,0,0,51,192,225,254,0,0,0,0,63,192,224,124,0,0,0,0,63,192,224,0,0,0,0,0,31,192,112,0,0,0,0,0,1,224,112,0,0,0,0,0,1,240,56,0,0,0,0,0,1,240,56,0,0,0,0,0,1,248,28,0,0,0,0,0,1,156,28,0,0,0,0,0,1,142,14,0,0,0,0,0,1,143,14,0,0,0,0,0,1,143,142,0,0,0,0,0,3,143,142,0,0,0,0,0,3,143,134,0,0,0,0,0,7,15,134,0,0,0,0,0,7,29,134,0,0,0,0,0,14,25,134,0,0,0,0,0,14,57,134,0,0,0,0,0,28,57,198,0,0,0,0,0,28,113,198,0,0,0,0,0,56,113,198,0,0,0,0,0,56,225,206,0,0,0,0,0,57,224,254,0,0,0,0,0,31,192,252,0,0,0,0,0,15,128,56,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,120,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,192,0,0,0,0,0,0,63,240,0,0,0,0,0,0,127,248,0,0,0,0,0,0,240,60,0,0,0,0,0,1,224,28,0,0,0,0,0,3,192,14,0,0,0,0,0,7,128,14,0,0,0,0,0,15,0,15,0,0,0,0,0,30,24,31,0,0,0,0,0,60,56,31,128,0,0,0,0,56,240,27,128,0,0,0,0,49,240,57,192,0,0,0,0,113,240,57,248,0,0,0,0,115,224,56,126,0,0,0,0,99,224,60,31,0,0,0,0,227,224,126,7,128,0,0,0,231,224,127,3,128,0,0,0,199,192,103,227,128,0,0,1,199,192,99,255,128,0,0,1,207,192,224,127,0,0,0,1,207,192,224,8,0,0,0,0,253,192,224,0,0,0,0,0,121,192,112,0,0,0,0,0,1,224,112,0,0,0,0,0,1,240,56,0,0,0,0,0,1,248,28,0,0,0,0,0,3,188,28,0,0,0,0,0,3,158,14,0,0,0,0,0,3,143,7,0,0,0,0,0,3,143,135,0,0,0,0,0,3,143,199,0,0,0,0,0,7,13,195,0,0,0,0,0,7,29,195,0,0,0,0,0,14,28,195,0,0,0,0,0,28,56,195,128,0,0,0,0,28,56,227,128,0,0,0,0,56,112,227,128,0,0,0,0,112,112,227,128,0,0,0,0,112,224,97,128,0,0,0,0,225,192,97,128,0,0,0,0,225,192,113,128,0,0,0,0,227,128,115,128,0,0,0,0,127,128,63,128,0,0,0,0,127,0,63,0,0,0,0,0,28,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,255,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,240,0,0,0,0,0,0,127,248,0,0,0,0,0,0,248,60,0,0,0,0,0,1,224,28,0,0,0,0,0,7,192,14,0,0,0,0,0,15,0,15,0,0,0,0,0,30,0,15,0,0,0,0,0,60,16,31,128,0,0,0,0,120,112,31,128,0,0,0,0,112,240,25,192,0,0,0,0,97,240,24,240,0,0,0,0,227,240,56,254,0,0,0,0,199,96,60,63,128,0,0,1,199,96,62,7,192,0,0,1,206,224,127,0,192,0,0,1,142,224,119,224,192,0,0,3,140,192,115,253,192,0,0,3,156,192,96,127,192,0,0,3,29,192,224,15,128,0,0,3,57,192,224,0,0,0,0,3,249,192,224,0,0,0,0,1,241,192,112,0,0,0,0,0,65,224,120,0,0,0,0,0,3,240,56,0,0,0,0,0,3,248,28,0,0,0,0,0,3,188,14,0,0,0,0,0,3,158,14,0,0,0,0,0,3,15,7,0,0,0,0,0,3,15,131,0,0,0,0,0,7,31,195,128,0,0,0,0,7,29,227,128,0,0,0,0,14,28,225,128,0,0,0,0,28,24,225,128,0,0,0,0,60,56,97,192,0,0,0,0,56,112,97,192,0,0,0,0,112,112,113,192,0,0,0,0,224,224,112,192,0,0,0,1,225,192,112,192,0,0,0,1,195,192,48,224,0,0,0,1,131,128,56,224,0,0,0,1,199,0,56,224,0,0,0,1,238,0,63,224,0,0,0,0,254,0,31,192,0,0,0,0,124,0,15,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
};

void setup() {
  display.begin(SSD1306_SWITCHCAPVCC, SCREEN_I2C_ADDR);
}

int frame = 0;
void loop() {
  display.clearDisplay();
  display.drawBitmap(32, 0, frames[frame], FRAME_WIDTH, FRAME_HEIGHT, 1);
  display.display();
  frame = (frame + 1) % FRAME_COUNT;
  delay(FRAME_DELAY);
}
1 Like

Can you place one pixel on the OLED? Four corners?

What is your image size? I went through the even combinations of factors of 4096 (128x32, 64x64, 32x128), and this is the closest I could make a pattern (64x64)...
canvas

Try the SH1106 library.

Definitely, try another library. If you were following UPIR on YouTube, pay attention to his hyper-fast speaking by slowing the video to .5 or pausing a lot.

Copy/paste my sketch to see the results of frame #1:

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH  128 // OLED display width, in pixels
#define SCREEN_HEIGHT  64 // OLED display height, in pixels
#define OLED_RESET     -1 // Reset pin # (or -1 if sharing Arduino reset pin)
#define OLED_I2C     0x3C

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

#define IMG_HEIGHT 64
#define IMG_WIDTH  64

static const unsigned char PROGMEM imageBitmap[] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,7,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,240,0,0,0,0,0,0,127,248,0,0,0,0,0,0,248,60,0,0,0,0,0,3,224,28,0,0,0,0,0,7,128,14,0,0,0,0,0,15,0,15,0,0,0,0,0,62,0,15,0,0,0,0,0,56,0,31,128,0,0,0,0,112,112,29,192,0,0,0,0,224,240,25,224,0,0,0,0,227,240,24,252,0,0,0,0,199,240,56,127,128,0,0,1,199,96,60,31,192,0,0,1,206,96,62,1,224,0,0,3,142,224,119,128,224,0,0,3,156,224,115,248,224,0,0,3,28,192,113,255,224,0,0,7,24,192,96,63,192,0,0,6,57,192,224,3,128,0,0,7,57,192,224,0,0,0,0,7,241,192,224,0,0,0,0,3,225,192,112,0,0,0,0,0,129,224,120,0,0,0,0,0,3,240,56,0,0,0,0,0,3,248,28,0,0,0,0,0,3,188,14,0,0,0,0,0,3,30,15,0,0,0,0,0,3,15,7,0,0,0,0,0,7,15,131,128,0,0,0,0,7,31,195,128,0,0,0,0,14,28,225,128,0,0,0,0,30,24,225,128,0,0,0,0,28,56,97,192,0,0,0,0,56,56,113,192,0,0,0,0,112,112,112,192,0,0,0,0,240,240,112,192,0,0,0,0,224,224,48,224,0,0,0,1,193,192,56,224,0,0,0,3,131,128,56,96,0,0,0,3,135,128,56,96,0,0,0,3,143,0,56,96,0,0,0,3,158,0,28,224,0,0,0,1,252,0,15,224,0,0,0,0,248,0,15,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};

void setup() {
  Serial.begin(9600);

  if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println(F("SSD1306 allocation failed"));
    for (;;);
  }

  display.clearDisplay(); // Clear the display buffer.

  display.drawBitmap( // place bitmap in screen buffer
    (SCREEN_WIDTH - IMG_WIDTH) / 2, // start x of bitmap
    (SCREEN_HEIGHT - IMG_HEIGHT) / 2, // start y of bitmap
    imageBitmap, // title of bitmap
    IMG_WIDTH,   // width of display
    IMG_WIDTH,   // height of display
    WHITE);      // color of pixels (WHITE or BLACK, 1 or 0)
  display.display(); // display screen buffer
}

void loop() {}

walk

1 Like

I have 128x64 image

Yeah, I saw it later. Lot tutorials work with SSD1306 :confused: but now with SH1106 it works!

Definitely... the U8G is not working... I just used your bitmap, and it "walks"

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH  128 // OLED display width, in pixels
#define SCREEN_HEIGHT  64 // OLED display height, in pixels
#define OLED_RESET     -1 // Reset pin # (or -1 if sharing Arduino reset pin)
#define OLED_I2C     0x3C

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

#define IMG_HEIGHT 64
#define IMG_WIDTH  64

#define FRAME_DELAY (42)
#define FRAME_WIDTH (64)
#define FRAME_HEIGHT (64)
#define FRAME_COUNT (sizeof(frames) / sizeof(frames[0]))
const byte PROGMEM frames[][512] = {
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,7,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,240,0,0,0,0,0,0,127,248,0,0,0,0,0,0,248,60,0,0,0,0,0,3,224,28,0,0,0,0,0,7,128,14,0,0,0,0,0,15,0,15,0,0,0,0,0,62,0,15,0,0,0,0,0,56,0,31,128,0,0,0,0,112,112,29,192,0,0,0,0,224,240,25,224,0,0,0,0,227,240,24,252,0,0,0,0,199,240,56,127,128,0,0,1,199,96,60,31,192,0,0,1,206,96,62,1,224,0,0,3,142,224,119,128,224,0,0,3,156,224,115,248,224,0,0,3,28,192,113,255,224,0,0,7,24,192,96,63,192,0,0,6,57,192,224,3,128,0,0,7,57,192,224,0,0,0,0,7,241,192,224,0,0,0,0,3,225,192,112,0,0,0,0,0,129,224,120,0,0,0,0,0,3,240,56,0,0,0,0,0,3,248,28,0,0,0,0,0,3,188,14,0,0,0,0,0,3,30,15,0,0,0,0,0,3,15,7,0,0,0,0,0,7,15,131,128,0,0,0,0,7,31,195,128,0,0,0,0,14,28,225,128,0,0,0,0,30,24,225,128,0,0,0,0,28,56,97,192,0,0,0,0,56,56,113,192,0,0,0,0,112,112,112,192,0,0,0,0,240,240,112,192,0,0,0,0,224,224,48,224,0,0,0,1,193,192,56,224,0,0,0,3,131,128,56,96,0,0,0,3,135,128,56,96,0,0,0,3,143,0,56,96,0,0,0,3,158,0,28,224,0,0,0,1,252,0,15,224,0,0,0,0,248,0,15,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,7,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,240,0,0,0,0,0,0,127,248,0,0,0,0,0,0,248,60,0,0,0,0,0,1,224,28,0,0,0,0,0,7,128,14,0,0,0,0,0,15,0,15,0,0,0,0,0,30,0,15,0,0,0,0,0,60,0,31,128,0,0,0,0,112,112,29,192,0,0,0,0,112,240,25,192,0,0,0,0,225,240,24,248,0,0,0,0,227,240,56,255,0,0,0,0,199,96,60,31,128,0,0,1,198,96,62,3,192,0,0,1,206,224,127,0,224,0,0,3,142,224,119,240,224,0,0,3,156,192,115,255,224,0,0,3,28,192,96,127,192,0,0,7,25,192,224,7,128,0,0,7,57,192,224,0,0,0,0,3,241,192,224,0,0,0,0,3,241,192,112,0,0,0,0,0,193,224,120,0,0,0,0,0,3,224,56,0,0,0,0,0,3,248,28,0,0,0,0,0,3,188,14,0,0,0,0,0,3,158,14,0,0,0,0,0,3,15,7,0,0,0,0,0,3,15,131,0,0,0,0,0,7,15,195,128,0,0,0,0,15,29,195,128,0,0,0,0,14,28,225,128,0,0,0,0,28,24,225,192,0,0,0,0,56,56,97,192,0,0,0,0,120,120,112,192,0,0,0,0,112,112,112,192,0,0,0,0,224,224,112,224,0,0,0,1,193,192,48,224,0,0,0,1,131,128,56,96,0,0,0,3,135,128,56,96,0,0,0,1,143,0,56,96,0,0,0,1,206,0,28,224,0,0,0,1,254,0,15,224,0,0,0,0,248,0,15,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,7,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,128,0,0,0,0,0,0,31,240,0,0,0,0,0,0,127,248,0,0,0,0,0,0,248,60,0,0,0,0,0,1,224,28,0,0,0,0,0,3,192,14,0,0,0,0,0,15,0,14,0,0,0,0,0,30,0,15,0,0,0,0,0,60,16,31,128,0,0,0,0,56,120,31,128,0,0,0,0,112,240,25,192,0,0,0,0,113,240,25,224,0,0,0,0,99,240,56,252,0,0,0,0,227,224,56,127,0,0,0,0,231,224,60,15,128,0,0,0,199,224,126,3,128,0,0,1,198,224,119,193,192,0,0,1,206,192,119,249,192,0,0,3,143,192,97,255,128,0,0,3,157,192,224,31,128,0,0,3,157,192,224,0,0,0,0,3,249,192,224,0,0,0,0,1,249,192,112,0,0,0,0,0,241,224,112,0,0,0,0,0,1,224,56,0,0,0,0,0,3,240,28,0,0,0,0,0,3,184,28,0,0,0,0,0,3,156,14,0,0,0,0,0,3,142,7,0,0,0,0,0,3,143,7,0,0,0,0,0,3,15,131,0,0,0,0,0,7,15,195,128,0,0,0,0,14,29,195,128,0,0,0,0,30,28,225,128,0,0,0,0,60,28,225,192,0,0,0,0,56,56,97,192,0,0,0,0,112,112,112,192,0,0,0,0,224,224,112,224,0,0,0,1,193,224,48,224,0,0,0,1,195,192,56,96,0,0,0,1,195,128,56,96,0,0,0,1,199,0,56,96,0,0,0,1,254,0,28,224,0,0,0,0,252,0,15,224,0,0,0,0,120,0,15,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,7,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,192,0,0,0,0,0,0,63,240,0,0,0,0,0,0,127,248,0,0,0,0,0,0,240,60,0,0,0,0,0,1,224,28,0,0,0,0,0,3,192,14,0,0,0,0,0,7,128,14,0,0,0,0,0,15,0,15,0,0,0,0,0,28,24,31,0,0,0,0,0,56,56,31,128,0,0,0,0,56,112,27,128,0,0,0,0,49,240,57,192,0,0,0,0,113,240,57,240,0,0,0,0,115,224,56,252,0,0,0,0,99,224,60,62,0,0,0,0,99,224,124,15,0,0,0,0,231,224,126,3,128,0,0,0,231,192,127,195,128,0,0,0,199,192,103,255,0,0,0,1,207,192,224,255,0,0,0,1,207,192,224,28,0,0,0,1,223,192,224,0,0,0,0,0,253,192,112,0,0,0,0,0,121,224,112,0,0,0,0,0,1,224,56,0,0,0,0,0,1,240,56,0,0,0,0,0,1,184,28,0,0,0,0,0,1,156,28,0,0,0,0,0,1,158,14,0,0,0,0,0,3,142,6,0,0,0,0,0,3,143,7,0,0,0,0,0,3,143,135,0,0,0,0,0,7,15,131,128,0,0,0,0,14,13,195,128,0,0,0,0,28,28,193,128,0,0,0,0,56,60,225,192,0,0,0,0,112,120,225,192,0,0,0,0,240,112,112,224,0,0,0,0,224,224,112,224,0,0,0,0,193,192,56,224,0,0,0,0,195,128,56,96,0,0,0,0,231,0,60,96,0,0,0,0,255,0,31,224,0,0,0,0,126,0,15,192,0,0,0,0,0,0,7,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,255,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,192,0,0,0,0,0,0,63,240,0,0,0,0,0,0,127,248,0,0,0,0,0,0,240,28,0,0,0,0,0,1,224,28,0,0,0,0,0,3,192,14,0,0,0,0,0,7,128,14,0,0,0,0,0,15,0,14,0,0,0,0,0,30,24,31,0,0,0,0,0,28,56,31,0,0,0,0,0,56,112,31,0,0,0,0,0,56,240,59,128,0,0,0,0,57,240,59,192,0,0,0,0,57,224,57,240,0,0,0,0,49,224,56,124,0,0,0,0,51,224,120,62,0,0,0,0,115,224,124,14,0,0,0,0,115,192,127,7,0,0,0,0,115,192,111,238,0,0,0,0,99,192,227,254,0,0,0,0,103,192,224,124,0,0,0,0,103,192,224,0,0,0,0,0,127,192,112,0,0,0,0,0,127,224,112,0,0,0,0,0,25,224,48,0,0,0,0,0,1,240,56,0,0,0,0,0,1,248,24,0,0,0,0,0,1,248,28,0,0,0,0,0,1,220,28,0,0,0,0,0,1,206,14,0,0,0,0,0,1,206,14,0,0,0,0,0,3,143,7,0,0,0,0,0,7,143,135,0,0,0,0,0,15,15,131,128,0,0,0,0,30,15,195,128,0,0,0,0,60,29,193,192,0,0,0,0,120,56,225,192,0,0,0,0,112,120,96,224,0,0,0,0,224,240,112,224,0,0,0,0,225,224,56,96,0,0,0,0,227,192,56,112,0,0,0,0,127,128,24,96,0,0,0,0,127,0,31,224,0,0,0,0,28,0,15,192,0,0,0,0,0,0,7,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,135,0,0,0,0,0,0,7,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,3,255,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,224,0,0,0,0,0,0,63,240,0,0,0,0,0,0,127,248,0,0,0,0,0,0,240,28,0,0,0,0,0,0,224,28,0,0,0,0,0,1,192,12,0,0,0,0,0,3,128,12,0,0,0,0,0,7,8,28,0,0,0,0,0,15,28,30,0,0,0,0,0,14,56,30,0,0,0,0,0,28,112,30,0,0,0,0,0,28,240,63,0,0,0,0,0,28,224,63,128,0,0,0,0,24,224,51,192,0,0,0,0,25,224,49,224,0,0,0,0,25,224,120,240,0,0,0,0,57,224,124,112,0,0,0,0,57,192,127,48,0,0,0,0,57,192,239,240,0,0,0,0,57,192,227,240,0,0,0,0,59,192,224,224,0,0,0,0,59,192,224,0,0,0,0,0,63,192,96,0,0,0,0,0,31,224,112,0,0,0,0,0,1,224,112,0,0,0,0,0,1,240,48,0,0,0,0,0,1,240,56,0,0,0,0,0,0,248,56,0,0,0,0,0,0,220,24,0,0,0,0,0,0,220,28,0,0,0,0,0,1,206,28,0,0,0,0,0,7,206,12,0,0,0,0,0,15,15,14,0,0,0,0,0,30,15,14,0,0,0,0,0,60,31,135,0,0,0,0,0,120,63,135,0,0,0,0,0,112,121,195,0,0,0,0,0,225,225,195,128,0,0,0,0,227,192,195,128,0,0,0,0,127,128,225,128,0,0,0,0,127,0,225,128,0,0,0,0,28,0,113,128,0,0,0,0,0,0,127,128,0,0,0,0,0,0,63,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,124,120,0,0,0,0,0,0,240,28,0,0,0,0,0,0,224,28,0,0,0,0,0,1,192,12,0,0,0,0,0,3,128,28,0,0,0,0,0,3,140,28,0,0,0,0,0,7,28,28,0,0,0,0,0,14,56,28,0,0,0,0,0,14,56,28,0,0,0,0,0,12,112,60,0,0,0,0,0,12,240,62,0,0,0,0,0,12,224,63,0,0,0,0,0,12,224,55,128,0,0,0,0,12,224,115,128,0,0,0,0,12,224,121,192,0,0,0,0,12,224,125,192,0,0,0,0,28,224,255,128,0,0,0,0,28,224,239,0,0,0,0,0,28,192,224,0,0,0,0,0,15,192,224,0,0,0,0,0,15,192,224,0,0,0,0,0,7,224,96,0,0,0,0,0,0,224,112,0,0,0,0,0,0,240,112,0,0,0,0,0,0,240,112,0,0,0,0,0,0,248,48,0,0,0,0,0,0,248,48,0,0,0,0,0,1,252,56,0,0,0,0,0,3,252,56,0,0,0,0,0,15,140,24,0,0,0,0,0,62,14,28,0,0,0,0,0,124,30,28,0,0,0,0,0,112,62,28,0,0,0,0,0,96,255,12,0,0,0,0,0,97,231,14,0,0,0,0,0,127,195,14,0,0,0,0,0,127,3,134,0,0,0,0,0,62,3,134,0,0,0,0,0,0,1,134,0,0,0,0,0,0,1,206,0,0,0,0,0,0,1,254,0,0,0,0,0,0,0,252,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,223,0,0,0,0,0,0,7,7,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,3,128,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,56,0,0,0,0,0,0,112,28,0,0,0,0,0,0,224,12,0,0,0,0,0,1,192,12,0,0,0,0,0,1,192,12,0,0,0,0,0,3,140,28,0,0,0,0,0,3,156,28,0,0,0,0,0,7,28,24,0,0,0,0,0,6,56,24,0,0,0,0,0,6,112,56,0,0,0,0,0,14,112,56,0,0,0,0,0,6,112,56,0,0,0,0,0,6,112,124,0,0,0,0,0,6,112,124,0,0,0,0,0,6,112,124,0,0,0,0,0,6,112,124,0,0,0,0,0,6,112,252,0,0,0,0,0,6,112,248,0,0,0,0,0,7,112,224,0,0,0,0,0,7,240,224,0,0,0,0,0,3,224,224,0,0,0,0,0,1,224,224,0,0,0,0,0,0,224,96,0,0,0,0,0,0,224,96,0,0,0,0,0,0,112,96,0,0,0,0,0,0,112,96,0,0,0,0,0,0,240,112,0,0,0,0,0,3,248,112,0,0,0,0,0,31,248,112,0,0,0,0,0,62,28,112,0,0,0,0,0,120,28,48,0,0,0,0,0,96,60,48,0,0,0,0,0,224,252,56,0,0,0,0,0,227,252,56,0,0,0,0,0,127,206,56,0,0,0,0,0,63,14,24,0,0,0,0,0,16,14,24,0,0,0,0,0,0,6,28,0,0,0,0,0,0,6,24,0,0,0,0,0,0,7,56,0,0,0,0,0,0,7,248,0,0,0,0,0,0,3,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,7,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,56,0,0,0,0,0,0,112,28,0,0,0,0,0,0,224,12,0,0,0,0,0,0,224,12,0,0,0,0,0,1,192,12,0,0,0,0,0,1,206,28,0,0,0,0,0,3,142,28,0,0,0,0,0,3,156,24,0,0,0,0,0,7,24,24,0,0,0,0,0,7,56,56,0,0,0,0,0,7,56,56,0,0,0,0,0,7,48,48,0,0,0,0,0,7,56,112,0,0,0,0,0,3,56,112,0,0,0,0,0,3,56,112,0,0,0,0,0,3,56,112,0,0,0,0,0,3,152,224,0,0,0,0,0,3,152,224,0,0,0,0,0,3,248,224,0,0,0,0,0,1,248,224,0,0,0,0,0,1,240,224,0,0,0,0,0,0,192,224,0,0,0,0,0,0,224,224,0,0,0,0,0,0,224,224,0,0,0,0,0,0,96,224,0,0,0,0,0,0,112,224,0,0,0,0,0,7,240,224,0,0,0,0,0,63,240,224,0,0,0,0,0,126,48,224,0,0,0,0,0,240,56,224,0,0,0,0,0,224,56,96,0,0,0,0,0,192,248,96,0,0,0,0,0,239,248,96,0,0,0,0,0,127,248,96,0,0,0,0,0,62,24,96,0,0,0,0,0,0,24,96,0,0,0,0,0,0,24,112,0,0,0,0,0,0,24,112,0,0,0,0,0,0,24,112,0,0,0,0,0,0,28,224,0,0,0,0,0,0,31,224,0,0,0,0,0,0,15,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,255,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,56,0,0,0,0,0,0,112,28,0,0,0,0,0,0,224,12,0,0,0,0,0,0,224,12,0,0,0,0,0,0,192,12,0,0,0,0,0,1,198,28,0,0,0,0,0,1,206,28,0,0,0,0,0,1,140,24,0,0,0,0,0,3,156,24,0,0,0,0,0,3,28,56,0,0,0,0,0,3,24,56,0,0,0,0,0,3,152,48,0,0,0,0,0,3,156,112,0,0,0,0,0,3,156,112,0,0,0,0,0,1,156,112,0,0,0,0,0,1,204,96,0,0,0,0,0,1,206,224,0,0,0,0,0,1,206,224,0,0,0,0,0,1,238,224,0,0,0,0,0,1,252,192,0,0,0,0,0,1,252,192,0,0,0,0,0,1,192,192,0,0,0,0,0,0,192,192,0,0,0,0,0,0,224,192,0,0,0,0,0,0,224,192,0,0,0,0,0,0,224,192,0,0,0,0,0,0,224,192,0,0,0,0,0,1,224,192,0,0,0,0,0,7,241,192,0,0,0,0,0,31,113,192,0,0,0,0,0,30,113,192,0,0,0,0,0,28,113,192,0,0,0,0,0,28,241,192,0,0,0,0,0,31,241,192,0,0,0,0,0,15,241,192,0,0,0,0,0,0,113,192,0,0,0,0,0,0,113,192,0,0,0,0,0,0,113,192,0,0,0,0,0,0,113,192,0,0,0,0,0,0,113,192,0,0,0,0,0,0,63,128,0,0,0,0,0,0,31,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,7,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,60,120,0,0,0,0,0,0,112,28,0,0,0,0,0,0,96,28,0,0,0,0,0,0,224,12,0,0,0,0,0,0,224,28,0,0,0,0,0,0,198,28,0,0,0,0,0,1,198,28,0,0,0,0,0,1,206,28,0,0,0,0,0,1,206,24,0,0,0,0,0,1,204,56,0,0,0,0,0,3,156,56,0,0,0,0,0,1,156,48,0,0,0,0,0,1,206,48,0,0,0,0,0,1,206,112,0,0,0,0,0,1,198,112,0,0,0,0,0,0,231,96,0,0,0,0,0,1,231,224,0,0,0,0,0,1,227,224,0,0,0,0,0,1,247,224,0,0,0,0,0,1,255,192,0,0,0,0,0,1,255,192,0,0,0,0,0,1,200,192,0,0,0,0,0,1,193,192,0,0,0,0,0,0,193,192,0,0,0,0,0,0,193,192,0,0,0,0,0,0,193,192,0,0,0,0,0,0,193,128,0,0,0,0,0,0,193,128,0,0,0,0,0,0,227,128,0,0,0,0,0,1,227,192,0,0,0,0,0,3,227,128,0,0,0,0,0,3,227,128,0,0,0,0,0,3,195,128,0,0,0,0,0,3,195,128,0,0,0,0,0,3,195,128,0,0,0,0,0,0,195,128,0,0,0,0,0,0,195,128,0,0,0,0,0,0,195,0,0,0,0,0,0,0,195,0,0,0,0,0,0,0,199,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,126,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,7,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,224,0,0,0,0,0,0,31,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,112,28,0,0,0,0,0,0,112,28,0,0,0,0,0,0,96,12,0,0,0,0,0,0,226,12,0,0,0,0,0,0,231,28,0,0,0,0,0,1,231,28,0,0,0,0,0,1,198,28,0,0,0,0,0,1,198,24,0,0,0,0,0,3,206,56,0,0,0,0,0,3,206,56,0,0,0,0,0,3,206,48,0,0,0,0,0,3,199,48,0,0,0,0,0,3,231,112,0,0,0,0,0,3,227,240,0,0,0,0,0,3,243,224,0,0,0,0,0,1,241,224,0,0,0,0,0,1,249,224,0,0,0,0,0,1,249,224,0,0,0,0,0,1,255,192,0,0,0,0,0,1,223,192,0,0,0,0,0,1,199,192,0,0,0,0,0,1,193,192,0,0,0,0,0,1,193,128,0,0,0,0,0,1,195,192,0,0,0,0,0,1,195,192,0,0,0,0,0,1,195,192,0,0,0,0,0,1,195,224,0,0,0,0,0,1,199,224,0,0,0,0,0,1,135,224,0,0,0,0,0,1,135,192,0,0,0,0,0,1,135,128,0,0,0,0,0,1,135,0,0,0,0,0,0,3,135,0,0,0,0,0,0,3,134,0,0,0,0,0,0,3,134,0,0,0,0,0,0,3,142,0,0,0,0,0,0,3,142,0,0,0,0,0,0,3,142,0,0,0,0,0,0,3,142,0,0,0,0,0,0,3,252,0,0,0,0,0,0,1,248,0,0,0,0,0,0,0,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,0,0,0,0,0,0,3,254,0,0,0,0,0,0,3,223,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,3,128,0,0,0,0,0,7,135,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,192,0,0,0,0,0,0,31,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,112,28,0,0,0,0,0,0,112,28,0,0,0,0,0,0,96,12,0,0,0,0,0,0,224,12,0,0,0,0,0,3,227,12,0,0,0,0,0,7,227,28,0,0,0,0,0,7,231,28,0,0,0,0,0,7,231,24,0,0,0,0,0,6,231,56,0,0,0,0,0,6,199,56,0,0,0,0,0,14,199,56,0,0,0,0,0,14,231,48,0,0,0,0,0,12,227,240,0,0,0,0,0,14,241,240,0,0,0,0,0,15,241,224,0,0,0,0,0,7,248,224,0,0,0,0,0,1,220,224,0,0,0,0,0,1,220,96,0,0,0,0,0,1,206,224,0,0,0,0,0,1,207,224,0,0,0,0,0,1,135,192,0,0,0,0,0,1,129,192,0,0,0,0,0,1,131,192,0,0,0,0,0,3,131,224,0,0,0,0,0,3,135,96,0,0,0,0,0,3,135,112,0,0,0,0,0,3,135,48,0,0,0,0,0,3,15,48,0,0,0,0,0,3,14,112,0,0,0,0,0,3,14,112,0,0,0,0,0,7,14,224,0,0,0,0,0,7,12,224,0,0,0,0,0,7,13,192,0,0,0,0,0,7,31,192,0,0,0,0,0,6,31,128,0,0,0,0,0,6,31,0,0,0,0,0,0,14,24,0,0,0,0,0,0,14,24,0,0,0,0,0,0,14,56,0,0,0,0,0,0,7,248,0,0,0,0,0,0,7,240,0,0,0,0,0,0,3,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,192,0,0,0,0,0,0,31,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,60,0,0,0,0,0,0,240,28,0,0,0,0,0,1,224,12,0,0,0,0,0,3,224,12,0,0,0,0,0,7,227,12,0,0,0,0,0,15,99,28,0,0,0,0,0,14,99,28,0,0,0,0,0,12,227,24,0,0,0,0,0,28,227,56,0,0,0,0,0,28,231,56,0,0,0,0,0,24,231,184,0,0,0,0,0,57,227,240,0,0,0,0,0,57,241,240,0,0,0,0,0,57,248,240,0,0,0,0,0,63,248,112,0,0,0,0,0,31,220,120,0,0,0,0,0,15,206,56,0,0,0,0,0,1,199,56,0,0,0,0,0,1,199,248,0,0,0,0,0,1,195,240,0,0,0,0,0,1,129,224,0,0,0,0,0,1,129,224,0,0,0,0,0,1,131,224,0,0,0,0,0,3,131,240,0,0,0,0,0,3,131,112,0,0,0,0,0,3,135,56,0,0,0,0,0,3,135,56,0,0,0,0,0,3,135,24,0,0,0,0,0,3,15,56,0,0,0,0,0,7,15,56,0,0,0,0,0,7,15,56,0,0,0,0,0,7,31,56,0,0,0,0,0,6,31,56,0,0,0,0,0,14,31,48,0,0,0,0,0,14,63,112,0,0,0,0,0,12,63,240,0,0,0,0,0,28,51,224,0,0,0,0,0,28,112,0,0,0,0,0,0,28,112,0,0,0,0,0,0,31,224,0,0,0,0,0,0,15,224,0,0,0,0,0,0,7,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,3,255,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,128,0,0,0,0,0,0,31,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,60,0,0,0,0,0,0,240,28,0,0,0,0,0,3,224,12,0,0,0,0,0,7,224,12,0,0,0,0,0,15,99,12,0,0,0,0,0,28,99,28,0,0,0,0,0,28,99,28,0,0,0,0,0,24,227,24,0,0,0,0,0,56,227,24,0,0,0,0,0,57,227,184,0,0,0,0,0,49,227,248,0,0,0,0,0,113,241,240,0,0,0,0,0,115,240,240,0,0,0,0,0,99,252,120,0,0,0,0,0,127,254,60,0,0,0,0,0,63,207,28,0,0,0,0,0,29,199,142,0,0,0,0,0,1,195,204,0,0,0,0,0,1,193,252,0,0,0,0,0,1,193,248,0,0,0,0,0,1,129,240,0,0,0,0,0,1,129,224,0,0,0,0,0,1,131,240,0,0,0,0,0,1,131,184,0,0,0,0,0,3,131,56,0,0,0,0,0,3,135,28,0,0,0,0,0,3,135,28,0,0,0,0,0,3,135,140,0,0,0,0,0,3,143,140,0,0,0,0,0,7,15,140,0,0,0,0,0,7,15,142,0,0,0,0,0,14,29,142,0,0,0,0,0,14,25,142,0,0,0,0,0,28,57,142,0,0,0,0,0,28,49,206,0,0,0,0,0,56,113,206,0,0,0,0,0,56,113,254,0,0,0,0,0,56,224,252,0,0,0,0,0,48,224,48,0,0,0,0,0,59,192,0,0,0,0,0,0,63,128,0,0,0,0,0,0,31,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,7,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,60,0,0,0,0,0,1,240,28,0,0,0,0,0,3,240,12,0,0,0,0,0,15,224,12,0,0,0,0,0,30,115,12,0,0,0,0,0,28,115,156,0,0,0,0,0,24,115,156,0,0,0,0,0,56,243,152,0,0,0,0,0,57,243,152,0,0,0,0,0,49,243,184,0,0,0,0,0,113,241,248,0,0,0,0,0,115,240,240,0,0,0,0,0,99,248,120,0,0,0,0,0,231,252,60,0,0,0,0,0,127,222,30,0,0,0,0,0,127,199,135,0,0,0,0,0,61,195,199,0,0,0,0,0,1,193,231,0,0,0,0,0,1,192,254,0,0,0,0,0,1,193,252,0,0,0,0,0,1,129,240,0,0,0,0,0,1,129,240,0,0,0,0,0,1,131,184,0,0,0,0,0,1,131,188,0,0,0,0,0,3,131,28,0,0,0,0,0,3,135,14,0,0,0,0,0,3,135,142,0,0,0,0,0,3,135,134,0,0,0,0,0,3,143,134,0,0,0,0,0,7,15,135,0,0,0,0,0,7,13,199,0,0,0,0,0,14,29,195,0,0,0,0,0,28,24,195,0,0,0,0,0,28,56,195,128,0,0,0,0,56,112,227,128,0,0,0,0,120,112,227,128,0,0,0,0,112,224,227,128,0,0,0,0,112,224,127,128,0,0,0,0,97,192,63,0,0,0,0,0,115,128,30,0,0,0,0,0,127,128,0,0,0,0,0,0,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,7,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,60,0,0,0,0,0,0,240,28,0,0,0,0,0,3,240,12,0,0,0,0,0,7,240,12,0,0,0,0,0,15,115,12,0,0,0,0,0,30,115,156,0,0,0,0,0,28,115,156,0,0,0,0,0,24,243,152,0,0,0,0,0,56,243,152,0,0,0,0,0,49,241,248,0,0,0,0,0,113,241,248,0,0,0,0,0,115,240,248,0,0,0,0,0,99,248,124,0,0,0,0,0,231,252,30,0,0,0,0,0,127,223,15,0,0,0,0,0,127,199,135,0,0,0,0,0,61,195,227,0,0,0,0,0,1,192,247,0,0,0,0,0,1,192,255,0,0,0,0,0,1,193,254,0,0,0,0,0,1,129,240,0,0,0,0,0,1,129,240,0,0,0,0,0,1,131,184,0,0,0,0,0,1,131,156,0,0,0,0,0,3,131,142,0,0,0,0,0,3,135,14,0,0,0,0,0,3,135,134,0,0,0,0,0,3,135,135,0,0,0,0,0,3,143,135,0,0,0,0,0,7,15,195,0,0,0,0,0,15,15,195,128,0,0,0,0,14,28,195,128,0,0,0,0,28,28,225,128,0,0,0,0,60,56,225,192,0,0,0,0,56,112,97,192,0,0,0,0,112,112,113,192,0,0,0,0,112,224,113,192,0,0,0,0,225,192,113,192,0,0,0,0,227,192,63,192,0,0,0,0,227,128,31,128,0,0,0,0,127,0,14,0,0,0,0,0,62,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,7,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,60,0,0,0,0,0,0,240,28,0,0,0,0,0,1,240,12,0,0,0,0,0,3,224,12,0,0,0,0,0,7,243,12,0,0,0,0,0,15,115,156,0,0,0,0,0,14,115,156,0,0,0,0,0,28,115,152,0,0,0,0,0,28,115,152,0,0,0,0,0,56,243,184,0,0,0,0,0,113,241,248,0,0,0,0,0,113,240,240,0,0,0,0,0,99,248,120,0,0,0,0,0,231,252,60,0,0,0,0,0,127,223,14,0,0,0,0,0,127,199,135,0,0,0,0,0,61,195,199,0,0,0,0,0,1,193,254,0,0,0,0,0,1,192,254,0,0,0,0,0,1,193,252,0,0,0,0,0,1,129,240,0,0,0,0,0,1,129,240,0,0,0,0,0,1,129,184,0,0,0,0,0,1,131,156,0,0,0,0,0,1,131,156,0,0,0,0,0,1,131,14,0,0,0,0,0,3,135,14,0,0,0,0,0,3,135,134,0,0,0,0,0,3,135,135,0,0,0,0,0,7,15,135,0,0,0,0,0,7,15,195,0,0,0,0,0,14,29,195,128,0,0,0,0,28,28,195,128,0,0,0,0,60,56,225,128,0,0,0,0,56,112,225,192,0,0,0,0,112,112,97,192,0,0,0,0,112,224,113,192,0,0,0,0,225,192,113,192,0,0,0,0,227,192,63,128,0,0,0,0,119,128,63,128,0,0,0,0,127,0,14,0,0,0,0,0,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,7,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,128,0,0,0,0,0,0,31,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,60,0,0,0,0,0,0,112,28,0,0,0,0,0,0,96,12,0,0,0,0,0,0,96,12,0,0,0,0,0,0,99,12,0,0,0,0,0,0,99,28,0,0,0,0,0,0,227,28,0,0,0,0,0,1,227,24,0,0,0,0,0,1,243,152,0,0,0,0,0,3,243,184,0,0,0,0,0,3,241,248,0,0,0,0,0,7,240,240,0,0,0,0,0,7,248,112,0,0,0,0,0,14,252,56,0,0,0,0,0,14,206,28,0,0,0,0,0,7,199,28,0,0,0,0,0,7,195,156,0,0,0,0,0,1,193,252,0,0,0,0,0,1,193,248,0,0,0,0,0,1,192,240,0,0,0,0,0,1,193,224,0,0,0,0,0,1,193,240,0,0,0,0,0,1,129,240,0,0,0,0,0,1,129,184,0,0,0,0,0,1,131,156,0,0,0,0,0,1,131,156,0,0,0,0,0,1,131,12,0,0,0,0,0,1,135,14,0,0,0,0,0,3,135,14,0,0,0,0,0,7,135,134,0,0,0,0,0,7,15,135,0,0,0,0,0,14,31,135,0,0,0,0,0,28,29,195,0,0,0,0,0,60,57,195,128,0,0,0,0,56,112,195,128,0,0,0,0,112,112,227,128,0,0,0,0,112,224,225,128,0,0,0,0,113,192,241,128,0,0,0,0,123,128,123,128,0,0,0,0,63,128,63,0,0,0,0,0,30,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,7,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,192,0,0,0,0,0,0,31,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,28,0,0,0,0,0,0,112,28,0,0,0,0,0,0,96,12,0,0,0,0,0,0,96,12,0,0,0,0,0,0,99,12,0,0,0,0,0,0,99,28,0,0,0,0,0,0,99,28,0,0,0,0,0,0,99,24,0,0,0,0,0,0,99,56,0,0,0,0,0,0,227,184,0,0,0,0,0,0,115,248,0,0,0,0,0,0,241,240,0,0,0,0,0,0,248,240,0,0,0,0,0,0,252,112,0,0,0,0,0,0,220,112,0,0,0,0,0,1,206,48,0,0,0,0,0,1,199,112,0,0,0,0,0,1,199,240,0,0,0,0,0,1,195,224,0,0,0,0,0,1,192,224,0,0,0,0,0,1,193,224,0,0,0,0,0,1,193,224,0,0,0,0,0,1,193,240,0,0,0,0,0,1,193,240,0,0,0,0,0,1,193,184,0,0,0,0,0,1,193,152,0,0,0,0,0,1,195,156,0,0,0,0,0,1,195,156,0,0,0,0,0,3,195,140,0,0,0,0,0,3,135,14,0,0,0,0,0,7,15,14,0,0,0,0,0,14,15,6,0,0,0,0,0,28,31,135,0,0,0,0,0,60,59,135,0,0,0,0,0,56,113,195,0,0,0,0,0,48,241,195,128,0,0,0,0,57,224,195,128,0,0,0,0,63,192,227,128,0,0,0,0,31,128,227,0,0,0,0,0,15,0,127,0,0,0,0,0,0,0,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,255,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,224,0,0,0,0,0,0,63,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,112,28,0,0,0,0,0,0,112,28,0,0,0,0,0,0,96,12,0,0,0,0,0,0,98,12,0,0,0,0,0,0,231,28,0,0,0,0,0,0,231,28,0,0,0,0,0,0,231,28,0,0,0,0,0,0,231,24,0,0,0,0,0,0,199,56,0,0,0,0,0,0,231,56,0,0,0,0,0,0,231,56,0,0,0,0,0,0,227,176,0,0,0,0,0,0,241,240,0,0,0,0,0,0,241,240,0,0,0,0,0,0,248,240,0,0,0,0,0,1,216,224,0,0,0,0,0,1,220,224,0,0,0,0,0,1,223,224,0,0,0,0,0,1,207,224,0,0,0,0,0,1,193,224,0,0,0,0,0,1,192,224,0,0,0,0,0,1,192,224,0,0,0,0,0,1,193,224,0,0,0,0,0,0,193,240,0,0,0,0,0,0,193,240,0,0,0,0,0,0,193,248,0,0,0,0,0,0,225,248,0,0,0,0,0,0,225,216,0,0,0,0,0,1,195,156,0,0,0,0,0,3,135,156,0,0,0,0,0,7,15,12,0,0,0,0,0,14,15,14,0,0,0,0,0,28,31,14,0,0,0,0,0,60,59,6,0,0,0,0,0,56,115,135,0,0,0,0,0,56,227,135,0,0,0,0,0,31,193,199,0,0,0,0,0,15,129,199,0,0,0,0,0,7,0,199,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,126,0,0,0,0,0,0,0,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,60,124,0,0,0,0,0,0,112,28,0,0,0,0,0,0,112,28,0,0,0,0,0,0,224,12,0,0,0,0,0,0,226,28,0,0,0,0,0,0,231,28,0,0,0,0,0,0,199,28,0,0,0,0,0,1,198,28,0,0,0,0,0,1,206,28,0,0,0,0,0,1,206,60,0,0,0,0,0,1,206,60,0,0,0,0,0,1,206,60,0,0,0,0,0,1,199,60,0,0,0,0,0,0,231,124,0,0,0,0,0,0,227,124,0,0,0,0,0,0,227,236,0,0,0,0,0,1,243,236,0,0,0,0,0,1,243,236,0,0,0,0,0,1,255,236,0,0,0,0,0,1,223,252,0,0,0,0,0,1,204,252,0,0,0,0,0,1,192,224,0,0,0,0,0,0,192,224,0,0,0,0,0,0,224,224,0,0,0,0,0,0,224,224,0,0,0,0,0,0,224,224,0,0,0,0,0,0,96,224,0,0,0,0,0,0,112,240,0,0,0,0,0,0,112,240,0,0,0,0,0,0,225,240,0,0,0,0,0,0,227,240,0,0,0,0,0,1,195,176,0,0,0,0,0,3,199,48,0,0,0,0,0,3,143,56,0,0,0,0,0,7,14,56,0,0,0,0,0,7,30,56,0,0,0,0,0,7,62,24,0,0,0,0,0,7,254,28,0,0,0,0,0,3,246,24,0,0,0,0,0,1,231,56,0,0,0,0,0,0,3,248,0,0,0,0,0,0,1,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,207,0,0,0,0,0,0,7,7,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,60,0,0,0,0,0,0,112,28,0,0,0,0,0,0,96,12,0,0,0,0,0,0,224,12,0,0,0,0,0,0,226,12,0,0,0,0,0,1,199,28,0,0,0,0,0,1,198,30,0,0,0,0,0,1,142,30,0,0,0,0,0,3,142,30,0,0,0,0,0,3,156,62,0,0,0,0,0,3,156,62,0,0,0,0,0,3,140,62,0,0,0,0,0,1,140,118,0,0,0,0,0,1,142,119,0,0,0,0,0,1,206,119,0,0,0,0,0,1,198,115,0,0,0,0,0,1,198,251,128,0,0,0,0,1,230,251,128,0,0,0,0,1,254,255,0,0,0,0,0,1,254,239,0,0,0,0,0,1,252,224,0,0,0,0,0,1,192,224,0,0,0,0,0,0,224,224,0,0,0,0,0,0,224,96,0,0,0,0,0,0,240,96,0,0,0,0,0,0,112,96,0,0,0,0,0,0,120,112,0,0,0,0,0,0,120,112,0,0,0,0,0,0,56,112,0,0,0,0,0,0,56,224,0,0,0,0,0,0,56,224,0,0,0,0,0,0,113,192,0,0,0,0,0,0,113,192,0,0,0,0,0,0,97,192,0,0,0,0,0,0,227,192,0,0,0,0,0,0,227,192,0,0,0,0,0,0,231,192,0,0,0,0,0,0,255,192,0,0,0,0,0,0,126,192,0,0,0,0,0,0,63,192,0,0,0,0,0,0,31,128,0,0,0,0,0,0,15,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,255,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,60,0,0,0,0,0,0,112,28,0,0,0,0,0,0,224,12,0,0,0,0,0,0,224,12,0,0,0,0,0,1,192,12,0,0,0,0,0,1,198,30,0,0,0,0,0,3,142,30,0,0,0,0,0,3,142,30,0,0,0,0,0,7,28,30,0,0,0,0,0,7,28,62,0,0,0,0,0,7,56,63,0,0,0,0,0,7,24,55,0,0,0,0,0,7,24,119,0,0,0,0,0,3,24,115,128,0,0,0,0,3,28,121,192,0,0,0,0,3,28,124,224,0,0,0,0,3,156,254,224,0,0,0,0,3,156,239,224,0,0,0,0,3,220,231,192,0,0,0,0,1,248,225,0,0,0,0,0,1,240,96,0,0,0,0,0,1,192,96,0,0,0,0,0,0,224,112,0,0,0,0,0,0,240,112,0,0,0,0,0,0,240,48,0,0,0,0,0,0,248,48,0,0,0,0,0,0,252,56,0,0,0,0,0,0,124,56,0,0,0,0,0,0,110,56,0,0,0,0,0,0,108,48,0,0,0,0,0,0,108,48,0,0,0,0,0,0,252,112,0,0,0,0,0,0,252,112,0,0,0,0,0,0,252,96,0,0,0,0,0,0,252,224,0,0,0,0,0,0,216,224,0,0,0,0,0,1,216,224,0,0,0,0,0,1,221,192,0,0,0,0,0,1,223,192,0,0,0,0,0,0,255,128,0,0,0,0,0,0,254,0,0,0,0,0,0,0,124,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,255,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,124,0,0,0,0,0,0,112,28,0,0,0,0,0,0,224,12,0,0,0,0,0,1,192,12,0,0,0,0,0,1,192,14,0,0,0,0,0,3,140,30,0,0,0,0,0,7,14,30,0,0,0,0,0,7,28,31,0,0,0,0,0,14,56,31,0,0,0,0,0,14,56,63,0,0,0,0,0,14,112,59,128,0,0,0,0,14,112,59,192,0,0,0,0,14,112,57,224,0,0,0,0,14,112,120,240,0,0,0,0,12,112,124,112,0,0,0,0,12,112,126,56,0,0,0,0,12,112,239,176,0,0,0,0,14,96,227,240,0,0,0,0,14,224,225,240,0,0,0,0,7,224,224,0,0,0,0,0,3,192,96,0,0,0,0,0,1,224,112,0,0,0,0,0,1,224,48,0,0,0,0,0,1,240,56,0,0,0,0,0,0,248,56,0,0,0,0,0,0,252,24,0,0,0,0,0,0,222,28,0,0,0,0,0,0,206,28,0,0,0,0,0,0,199,28,0,0,0,0,0,0,199,28,0,0,0,0,0,1,199,28,0,0,0,0,0,1,199,28,0,0,0,0,0,3,143,24,0,0,0,0,0,3,143,24,0,0,0,0,0,3,15,24,0,0,0,0,0,7,31,24,0,0,0,0,0,7,31,56,0,0,0,0,0,6,31,56,0,0,0,0,0,6,63,248,0,0,0,0,0,7,123,240,0,0,0,0,0,7,241,224,0,0,0,0,0,1,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,207,0,0,0,0,0,0,7,7,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,224,0,0,0,0,0,0,63,240,0,0,0,0,0,0,127,248,0,0,0,0,0,0,240,28,0,0,0,0,0,1,224,28,0,0,0,0,0,1,192,14,0,0,0,0,0,3,128,14,0,0,0,0,0,7,8,30,0,0,0,0,0,14,28,31,0,0,0,0,0,30,56,31,0,0,0,0,0,28,120,27,0,0,0,0,0,28,240,59,128,0,0,0,0,24,224,59,224,0,0,0,0,56,224,57,240,0,0,0,0,57,224,56,124,0,0,0,0,57,224,124,30,0,0,0,0,57,224,124,14,0,0,0,0,49,192,127,7,0,0,0,0,49,192,239,254,0,0,0,0,51,192,225,254,0,0,0,0,63,192,224,124,0,0,0,0,63,192,224,0,0,0,0,0,31,192,112,0,0,0,0,0,1,224,112,0,0,0,0,0,1,240,56,0,0,0,0,0,1,240,56,0,0,0,0,0,1,248,28,0,0,0,0,0,1,156,28,0,0,0,0,0,1,142,14,0,0,0,0,0,1,143,14,0,0,0,0,0,1,143,142,0,0,0,0,0,3,143,142,0,0,0,0,0,3,143,134,0,0,0,0,0,7,15,134,0,0,0,0,0,7,29,134,0,0,0,0,0,14,25,134,0,0,0,0,0,14,57,134,0,0,0,0,0,28,57,198,0,0,0,0,0,28,113,198,0,0,0,0,0,56,113,198,0,0,0,0,0,56,225,206,0,0,0,0,0,57,224,254,0,0,0,0,0,31,192,252,0,0,0,0,0,15,128,56,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,120,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,192,0,0,0,0,0,0,63,240,0,0,0,0,0,0,127,248,0,0,0,0,0,0,240,60,0,0,0,0,0,1,224,28,0,0,0,0,0,3,192,14,0,0,0,0,0,7,128,14,0,0,0,0,0,15,0,15,0,0,0,0,0,30,24,31,0,0,0,0,0,60,56,31,128,0,0,0,0,56,240,27,128,0,0,0,0,49,240,57,192,0,0,0,0,113,240,57,248,0,0,0,0,115,224,56,126,0,0,0,0,99,224,60,31,0,0,0,0,227,224,126,7,128,0,0,0,231,224,127,3,128,0,0,0,199,192,103,227,128,0,0,1,199,192,99,255,128,0,0,1,207,192,224,127,0,0,0,1,207,192,224,8,0,0,0,0,253,192,224,0,0,0,0,0,121,192,112,0,0,0,0,0,1,224,112,0,0,0,0,0,1,240,56,0,0,0,0,0,1,248,28,0,0,0,0,0,3,188,28,0,0,0,0,0,3,158,14,0,0,0,0,0,3,143,7,0,0,0,0,0,3,143,135,0,0,0,0,0,3,143,199,0,0,0,0,0,7,13,195,0,0,0,0,0,7,29,195,0,0,0,0,0,14,28,195,0,0,0,0,0,28,56,195,128,0,0,0,0,28,56,227,128,0,0,0,0,56,112,227,128,0,0,0,0,112,112,227,128,0,0,0,0,112,224,97,128,0,0,0,0,225,192,97,128,0,0,0,0,225,192,113,128,0,0,0,0,227,128,115,128,0,0,0,0,127,128,63,128,0,0,0,0,127,0,63,0,0,0,0,0,28,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,7,255,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,240,0,0,0,0,0,0,127,248,0,0,0,0,0,0,248,60,0,0,0,0,0,1,224,28,0,0,0,0,0,7,192,14,0,0,0,0,0,15,0,15,0,0,0,0,0,30,0,15,0,0,0,0,0,60,16,31,128,0,0,0,0,120,112,31,128,0,0,0,0,112,240,25,192,0,0,0,0,97,240,24,240,0,0,0,0,227,240,56,254,0,0,0,0,199,96,60,63,128,0,0,1,199,96,62,7,192,0,0,1,206,224,127,0,192,0,0,1,142,224,119,224,192,0,0,3,140,192,115,253,192,0,0,3,156,192,96,127,192,0,0,3,29,192,224,15,128,0,0,3,57,192,224,0,0,0,0,3,249,192,224,0,0,0,0,1,241,192,112,0,0,0,0,0,65,224,120,0,0,0,0,0,3,240,56,0,0,0,0,0,3,248,28,0,0,0,0,0,3,188,14,0,0,0,0,0,3,158,14,0,0,0,0,0,3,15,7,0,0,0,0,0,3,15,131,0,0,0,0,0,7,31,195,128,0,0,0,0,7,29,227,128,0,0,0,0,14,28,225,128,0,0,0,0,28,24,225,128,0,0,0,0,60,56,97,192,0,0,0,0,56,112,97,192,0,0,0,0,112,112,113,192,0,0,0,0,224,224,112,192,0,0,0,1,225,192,112,192,0,0,0,1,195,192,48,224,0,0,0,1,131,128,56,224,0,0,0,1,199,0,56,224,0,0,0,1,238,0,63,224,0,0,0,0,254,0,31,192,0,0,0,0,124,0,15,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
};

void setup() {
  display.begin(SSD1306_SWITCHCAPVCC, OLED_I2C);
}

int frame = 0;
void loop() {
  display.clearDisplay();
  display.drawBitmap(32, 0, frames[frame], FRAME_WIDTH, FRAME_HEIGHT, 1);
  display.display();
  frame = (frame + 1) % FRAME_COUNT;
  delay(FRAME_DELAY);
}

Yeah, UPIR was really fast for me, as a rookie. Thx for ur code and help! :slight_smile:

nice thank u so much for your help!

I saw this Uno code to program animation to ssd1306

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define OLED_RESET -1
#define SCREEN_ADDRESS 0x3C
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

#define NUMFLAKES     10

#define LOGO_HEIGHT   16
#define LOGO_WIDTH    16
static const unsigned char PROGMEM logo_bmp[] =
{ 0b00000000, 0b11000000,
  0b00000001, 0b11000000,
  0b00000001, 0b11000000,
  0b00000011, 0b11100000,
  0b11110011, 0b11100000,
  0b11111110, 0b11111000,
  0b01111110, 0b11111111,
  0b00110011, 0b10011111,
  0b00011111, 0b11111100,
  0b00001101, 0b01110000,
  0b00011011, 0b10100000,
  0b00111111, 0b11100000,
  0b00111111, 0b11110000,
  0b01111100, 0b11110000,
  0b01110000, 0b01110000,
  0b00000000, 0b00110000 };

void setup() {
  Serial.begin(9600);

  if(!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
    Serial.println(F("SSD1306 allocation failed"));
    for(;;); 
  }

  display.display();
  delay(2000);

  display.clearDisplay();

  display.drawPixel(10, 10, SSD1306_WHITE);

  display.display();
  delay(2000);

  testdrawline();
    
  testdrawrect();
      
  testfillrect();
     
  testdrawcircle();
    
  testfillcircle();
   
  testdrawroundrect();
 
  testfillroundrect();
 
  testdrawtriangle();  

  testfilltriangle();  

  testdrawchar();      

  testdrawstyles();
    
  testscrolltext();    

  testdrawbitmap();    

  display.invertDisplay(true);
  delay(1000);
  display.invertDisplay(false);
  delay(1000);

  testanimate(logo_bmp, LOGO_WIDTH, LOGO_HEIGHT);
}

void loop() {
}

void testdrawline() {
  int16_t i;

  display.clearDisplay();

  for(i=0; i<display.width(); i+=4) {
    display.drawLine(0, 0, i, display.height()-1, SSD1306_WHITE);
    display.display();
    delay(1);
  }
  for(i=0; i<display.height(); i+=4) {
    display.drawLine(0, 0, display.width()-1, i, SSD1306_WHITE);
    display.display();
    delay(1);
  }
  delay(250);

  display.clearDisplay();

  for(i=0; i<display.width(); i+=4) {
    display.drawLine(0, display.height()-1, i, 0, SSD1306_WHITE);
    display.display();
    delay(1);
  }
  for(i=display.height()-1; i>=0; i-=4) {
    display.drawLine(0, display.height()-1, display.width()-1, i, SSD1306_WHITE);
    display.display();
    delay(1);
  }
  delay(250);

  display.clearDisplay();

  for(i=display.width()-1; i>=0; i-=4) {
    display.drawLine(display.width()-1, display.height()-1, i, 0, SSD1306_WHITE);
    display.display();
    delay(1);
  }
  for(i=display.height()-1; i>=0; i-=4) {
    display.drawLine(display.width()-1, display.height()-1, 0, i, SSD1306_WHITE);
    display.display();
    delay(1);
  }
  delay(250);

  display.clearDisplay();

  for(i=0; i<display.height(); i+=4) {
    display.drawLine(display.width()-1, 0, 0, i, SSD1306_WHITE);
    display.display();
    delay(1);
  }
  for(i=0; i<display.width(); i+=4) {
    display.drawLine(display.width()-1, 0, i, display.height()-1, SSD1306_WHITE);
    display.display();
    delay(1);
  }

  delay(2000); 
}

void testdrawrect(void) {
  display.clearDisplay();

  for(int16_t i=0; i<display.height()/2; i+=2) {
    display.drawRect(i, i, display.width()-2*i, display.height()-2*i, SSD1306_WHITE);
    display.display(); 
    delay(1);
  }

  delay(2000);
}

void testfillrect(void) {
  display.clearDisplay();

  for(int16_t i=0; i<display.height()/2; i+=3) {
    display.fillRect(i, i, display.width()-i*2, display.height()-i*2, SSD1306_INVERSE);
    display.display();
    delay(1);
  }

  delay(2000);
}

void testdrawcircle(void) {
  display.clearDisplay();

  for(int16_t i=0; i<max(display.width(),display.height())/2; i+=2) {
    display.drawCircle(display.width()/2, display.height()/2, i, SSD1306_WHITE);
    display.display();
    delay(1);
  }

  delay(2000);
}

void testfillcircle(void) {
  display.clearDisplay();

  for(int16_t i=max(display.width(),display.height())/2; i>0; i-=3) {
    display.fillCircle(display.width() / 2, display.height() / 2, i, SSD1306_INVERSE);
    display.display();
    delay(1);
  }

  delay(2000);
}

void testdrawroundrect(void) {
  display.clearDisplay();

  for(int16_t i=0; i<display.height()/2-2; i+=2) {
    display.drawRoundRect(i, i, display.width()-2*i, display.height()-2*i,
      display.height()/4, SSD1306_WHITE);
    display.display();
    delay(1);
  }

  delay(2000);
}

void testfillroundrect(void) {
  display.clearDisplay();

  for(int16_t i=0; i<display.height()/2-2; i+=2) {
    display.fillRoundRect(i, i, display.width()-2*i, display.height()-2*i,
      display.height()/4, SSD1306_INVERSE);
    display.display();
    delay(1);
  }

  delay(2000);
}

void testdrawtriangle(void) {
  display.clearDisplay();

  for(int16_t i=0; i<max(display.width(),display.height())/2; i+=5) {
    display.drawTriangle(
      display.width()/2  , display.height()/2-i,
      display.width()/2-i, display.height()/2+i,
      display.width()/2+i, display.height()/2+i, SSD1306_WHITE);
    display.display();
    delay(1);
  }

  delay(2000);
}

void testfilltriangle(void) {
  display.clearDisplay();

  for(int16_t i=max(display.width(),display.height())/2; i>0; i-=5) {
    display.fillTriangle(
      display.width()/2  , display.height()/2-i,
      display.width()/2-i, display.height()/2+i,
      display.width()/2+i, display.height()/2+i, SSD1306_INVERSE);
    display.display();
    delay(1);
  }

  delay(2000);
}

void testdrawchar(void) {
  display.clearDisplay();

  display.setTextSize(1);      
  display.setTextColor(SSD1306_WHITE); 
  display.setCursor(0, 0);     
  display.cp437(true);         

  for(int16_t i=0; i<256; i++) {
    if(i == '\n') display.write(' ');
    else          display.write(i);
  }

  display.display();
  delay(2000);
}

void testdrawstyles(void) {
  display.clearDisplay();

  display.setTextSize(1);             
  display.setTextColor(SSD1306_WHITE);        
  display.setCursor(0,0);             
  display.println(F("Hello, world!"));

  display.setTextColor(SSD1306_BLACK, SSD1306_WHITE); 
  display.println(3.141592);

  display.setTextSize(2);             
  display.setTextColor(SSD1306_WHITE);
  display.print(F("0x")); display.println(0xDEADBEEF, HEX);

  display.display();
  delay(2000);
}

void testscrolltext(void) {
  display.clearDisplay();

  display.setTextSize(2); 
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(10, 0);
  display.println(F("scroll"));
  display.display();      
  delay(100);

  
  display.startscrollright(0x00, 0x0F);
  delay(2000);
  display.stopscroll();
  delay(1000);
  display.startscrollleft(0x00, 0x0F);
  delay(2000);
  display.stopscroll();
  delay(1000);
  display.startscrolldiagright(0x00, 0x07);
  delay(2000);
  display.startscrolldiagleft(0x00, 0x07);
  delay(2000);
  display.stopscroll();
  delay(1000);
}

void testdrawbitmap(void) {
  display.clearDisplay();

  display.drawBitmap(
    (display.width()  - LOGO_WIDTH ) / 2,
    (display.height() - LOGO_HEIGHT) / 2,
    logo_bmp, LOGO_WIDTH, LOGO_HEIGHT, 1);
  display.display();
  delay(1000);
}

#define XPOS   0 
#define YPOS   1
#define DELTAY 2

void testanimate(const uint8_t *bitmap, uint8_t w, uint8_t h) {
  int8_t f, icons[NUMFLAKES][3];

  for(f=0; f< NUMFLAKES; f++) {
    icons[f][XPOS]   = random(1 - LOGO_WIDTH, display.width());
    icons[f][YPOS]   = -LOGO_HEIGHT;
    icons[f][DELTAY] = random(1, 6);
    Serial.print(F("x: "));
    Serial.print(icons[f][XPOS], DEC);
    Serial.print(F(" y: "));
    Serial.print(icons[f][YPOS], DEC);
    Serial.print(F(" dy: "));
    Serial.println(icons[f][DELTAY], DEC);
  }

  for(;;) { 
    display.clearDisplay(); 

    for(f=0; f< NUMFLAKES; f++) {
      display.drawBitmap(icons[f][XPOS], icons[f][YPOS], bitmap, w, h, SSD1306_WHITE);
    }

    display.display(); 
    delay(200);        

    
    for(f=0; f< NUMFLAKES; f++) {
      icons[f][YPOS] += icons[f][DELTAY];
      if (icons[f][YPOS] >= display.height()) {
        icons[f][XPOS]   = random(1 - LOGO_WIDTH, display.width());
        icons[f][YPOS]   = -LOGO_HEIGHT;
        icons[f][DELTAY] = random(1, 6);
      }
    }
  }
}

And I wanna know how can I change this code to make it from Uno board to nano board with sh1106 display. Is there some way how to change this? I have no idea. (I'm new to this and I wanna try something at home :slight_smile: ).

If the sketch runs on the UNO:
Connect the display to the Nano's I2c + Vcc + Gnd pins and it should run the same way. All you need is a picture of the NANO pins.

1 Like

Your sketch does not compile. I have done some changes in the sketch; now, it runs on both UNO and NANO. The revised and working sketch is given below.

#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 32 // OLED display height, in pixels

#define OLED_RESET     -1 // Reset pin # (or -1 if sharing Arduino reset pin)
#define SCREEN_ADDRESS 0x3C ///< See datasheet for Address; 0x3D for 128x64, 0x3C for 128x32
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

#define NUMFLAKES     10

#define LOGO_HEIGHT   16
#define LOGO_WIDTH    16

static const unsigned char PROGMEM logo_bmp[] =
{ 0b00000000, 0b11000000,
  0b00000001, 0b11000000,
  0b00000001, 0b11000000,
  0b00000011, 0b11100000,
  0b11110011, 0b11100000,
  0b11111110, 0b11111000,
  0b01111110, 0b11111111,
  0b00110011, 0b10011111,
  0b00011111, 0b11111100,
  0b00001101, 0b01110000,
  0b00011011, 0b10100000,
  0b00111111, 0b11100000,
  0b00111111, 0b11110000,
  0b01111100, 0b11110000,
  0b01110000, 0b01110000,
  0b00000000, 0b00110000
};

void setup() {
  Serial.begin(9600);

  if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
    Serial.println(F("SSD1306 allocation failed"));
    for (;;);
  }

  display.display();
  delay(2000);

  display.clearDisplay();

  display.drawPixel(10, 10, SSD1306_WHITE);

  display.display();
  delay(2000);

  testdrawline();

  testdrawrect();

  testfillrect();

  testdrawcircle();

  testfillcircle();

  testdrawroundrect();

  testfillroundrect();

  testdrawtriangle();

  testfilltriangle();

  testdrawchar();

  testdrawstyles();

  testscrolltext();

  testdrawbitmap();

  display.invertDisplay(true);
  delay(1000);
  display.invertDisplay(false);
  delay(1000);

  testanimate(logo_bmp, LOGO_WIDTH, LOGO_HEIGHT);
}

void loop() {
}

void testdrawline() {
  int16_t i;

  display.clearDisplay();

  for (i = 0; i < display.width(); i += 4) {
    display.drawLine(0, 0, i, display.height() - 1, SSD1306_WHITE);
    display.display();
    delay(1);
  }
  for (i = 0; i < display.height(); i += 4) {
    display.drawLine(0, 0, display.width() - 1, i, SSD1306_WHITE);
    display.display();
    delay(1);
  }
  delay(250);

  display.clearDisplay();

  for (i = 0; i < display.width(); i += 4) {
    display.drawLine(0, display.height() - 1, i, 0, SSD1306_WHITE);
    display.display();
    delay(1);
  }
  for (i = display.height() - 1; i >= 0; i -= 4) {
    display.drawLine(0, display.height() - 1, display.width() - 1, i, SSD1306_WHITE);
    display.display();
    delay(1);
  }
  delay(250);

  display.clearDisplay();

  for (i = display.width() - 1; i >= 0; i -= 4) {
    display.drawLine(display.width() - 1, display.height() - 1, i, 0, SSD1306_WHITE);
    display.display();
    delay(1);
  }
  for (i = display.height() - 1; i >= 0; i -= 4) {
    display.drawLine(display.width() - 1, display.height() - 1, 0, i, SSD1306_WHITE);
    display.display();
    delay(1);
  }
  delay(250);

  display.clearDisplay();

  for (i = 0; i < display.height(); i += 4) {
    display.drawLine(display.width() - 1, 0, 0, i, SSD1306_WHITE);
    display.display();
    delay(1);
  }
  for (i = 0; i < display.width(); i += 4) {
    display.drawLine(display.width() - 1, 0, i, display.height() - 1, SSD1306_WHITE);
    display.display();
    delay(1);
  }

  delay(2000);
}

void testdrawrect(void) {
  display.clearDisplay();

  for (int16_t i = 0; i < display.height() / 2; i += 2) {
    display.drawRect(i, i, display.width() - 2 * i, display.height() - 2 * i, SSD1306_WHITE);
    display.display();
    delay(1);
  }

  delay(2000);
}

void testfillrect(void) {
  display.clearDisplay();

  for (int16_t i = 0; i < display.height() / 2; i += 3) {
    display.fillRect(i, i, display.width() - i * 2, display.height() - i * 2, SSD1306_INVERSE);
    display.display();
    delay(1);
  }

  delay(2000);
}

void testdrawcircle(void) {
  display.clearDisplay();

  for (int16_t i = 0; i < max(display.width(), display.height()) / 2; i += 2) {
    display.drawCircle(display.width() / 2, display.height() / 2, i, SSD1306_WHITE);
    display.display();
    delay(1);
  }

  delay(2000);
}

void testfillcircle(void) {
  display.clearDisplay();

  for (int16_t i = max(display.width(), display.height()) / 2; i > 0; i -= 3) {
    display.fillCircle(display.width() / 2, display.height() / 2, i, SSD1306_INVERSE);
    display.display();
    delay(1);
  }

  delay(2000);
}

void testdrawroundrect(void) {
  display.clearDisplay();

  for (int16_t i = 0; i < display.height() / 2 - 2; i += 2) {
    display.drawRoundRect(i, i, display.width() - 2 * i, display.height() - 2 * i,
                          display.height() / 4, SSD1306_WHITE);
    display.display();
    delay(1);
  }

  delay(2000);
}

void testfillroundrect(void) {
  display.clearDisplay();

  for (int16_t i = 0; i < display.height() / 2 - 2; i += 2) {
    display.fillRoundRect(i, i, display.width() - 2 * i, display.height() - 2 * i,
                          display.height() / 4, SSD1306_INVERSE);
    display.display();
    delay(1);
  }

  delay(2000);
}

void testdrawtriangle(void) {
  display.clearDisplay();

  for (int16_t i = 0; i < max(display.width(), display.height()) / 2; i += 5) {
    display.drawTriangle(
      display.width() / 2  , display.height() / 2 - i,
      display.width() / 2 - i, display.height() / 2 + i,
      display.width() / 2 + i, display.height() / 2 + i, SSD1306_WHITE);
    display.display();
    delay(1);
  }

  delay(2000);
}

void testfilltriangle(void) {
  display.clearDisplay();

  for (int16_t i = max(display.width(), display.height()) / 2; i > 0; i -= 5) {
    display.fillTriangle(
      display.width() / 2  , display.height() / 2 - i,
      display.width() / 2 - i, display.height() / 2 + i,
      display.width() / 2 + i, display.height() / 2 + i, SSD1306_INVERSE);
    display.display();
    delay(1);
  }

  delay(2000);
}

void testdrawchar(void) {
  display.clearDisplay();

  display.setTextSize(1);
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(0, 0);
  display.cp437(true);

  for (int16_t i = 0; i < 256; i++) {
    if (i == '\n') display.write(' ');
    else          display.write(i);
  }

  display.display();
  delay(2000);
}

void testdrawstyles(void) {
  display.clearDisplay();

  display.setTextSize(1);
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(0, 0);
  display.println(F("Hello, world!"));

  display.setTextColor(SSD1306_BLACK, SSD1306_WHITE);
  display.println(3.141592);

  display.setTextSize(2);
  display.setTextColor(SSD1306_WHITE);
  display.print(F("0x")); display.println(0xDEADBEEF, HEX);

  display.display();
  delay(2000);
}

void testscrolltext(void) {
  display.clearDisplay();

  display.setTextSize(2);
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(10, 0);
  display.println(F("scroll"));
  display.display();
  delay(100);


  display.startscrollright(0x00, 0x0F);
  delay(2000);
  display.stopscroll();
  delay(1000);
  display.startscrollleft(0x00, 0x0F);
  delay(2000);
  display.stopscroll();
  delay(1000);
  display.startscrolldiagright(0x00, 0x07);
  delay(2000);
  display.startscrolldiagleft(0x00, 0x07);
  delay(2000);
  display.stopscroll();
  delay(1000);
}

void testdrawbitmap(void) {
  display.clearDisplay();

  display.drawBitmap(
    (display.width()  - LOGO_WIDTH ) / 2,
    (display.height() - LOGO_HEIGHT) / 2,
    logo_bmp, LOGO_WIDTH, LOGO_HEIGHT, 1);
  display.display();
  delay(1000);
}

#define XPOS   0
#define YPOS   1
#define DELTAY 2

void testanimate(const uint8_t *bitmap, uint8_t w, uint8_t h) {
  int8_t f, icons[NUMFLAKES][3];

  for (f = 0; f < NUMFLAKES; f++) {
    icons[f][XPOS]   = random(1 - LOGO_WIDTH, display.width());
    icons[f][YPOS]   = -LOGO_HEIGHT;
    icons[f][DELTAY] = random(1, 6);
    Serial.print(F("x: "));
    Serial.print(icons[f][XPOS], DEC);
    Serial.print(F(" y: "));
    Serial.print(icons[f][YPOS], DEC);
    Serial.print(F(" dy: "));
    Serial.println(icons[f][DELTAY], DEC);
  }

  for (;;) {
    display.clearDisplay();

    for (f = 0; f < NUMFLAKES; f++) {
      display.drawBitmap(icons[f][XPOS], icons[f][YPOS], bitmap, w, h, SSD1306_WHITE);
    }

    display.display();
    delay(200);


    for (f = 0; f < NUMFLAKES; f++) {
      icons[f][YPOS] += icons[f][DELTAY];
      if (icons[f][YPOS] >= display.height()) {
        icons[f][XPOS]   = random(1 - LOGO_WIDTH, display.width());
        icons[f][YPOS]   = -LOGO_HEIGHT;
        icons[f][DELTAY] = random(1, 6);
      }
    }
  }
}
1 Like

it says, that 'SCREEN WIDTH' was not declared in this scope

1 Like

@RudolfAtRTC Did you miss the fact that a different type of screen is to be used with the Nano ?

1 Like

I do not understand the question. “sh1106” is only mentioned once. Where is a 2nd display?

I have only sh1106. But library and code is for ssd1306

From the original post

So, contrary to the topic title, this isn't about "UNO to NANO" at all.
It's really about SH1106 and SSD1306 display drivers

3 Likes

I forgot to mention this. Original was on UNO board. But I have nano board with sh1106 display. I'm sorry

The code that runs in UNO runs in Nano without any modification, what you want is to modify the code so that it handles a different display, so the title of the theme does not correspond to what you want.