#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 
#define SCREEN_HEIGHT 64 
#define OLED_RESET     4 
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 bitmap[] =
{   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x3c, 0xf3, 0xf7, 0xc3, 0xe7, 0x8f, 0x61, 0xbe, 
    0x7d, 0xfb, 0xf7, 0xc3, 0xe7, 0xcf, 0x61, 0xbe, 
    0x61, 0x9b, 0x06, 0x03, 0x36, 0x66, 0x61, 0xb0, 
    0x61, 0x9b, 0x06, 0x03, 0x36, 0x66, 0x21, 0x30, 
    0x61, 0x9b, 0x06, 0x03, 0x36, 0x66, 0x33, 0x30, 
    0x79, 0xfb, 0xc7, 0x83, 0x37, 0xc6, 0x33, 0x3c, 
    0x3d, 0xfb, 0xc7, 0x83, 0x37, 0x86, 0x33, 0x3c, 
    0x0d, 0x9b, 0x06, 0x03, 0x36, 0xc6, 0x33, 0x30, 
    0x0d, 0x9b, 0x06, 0x03, 0x36, 0xc6, 0x12, 0x30, 
    0x0d, 0x9b, 0x06, 0x03, 0x36, 0x46, 0x1e, 0x30, 
    0x7d, 0x9b, 0x07, 0xc3, 0xe6, 0x6f, 0x0c, 0x3e, 
    0x79, 0x9b, 0x07, 0xc3, 0xc6, 0x6f, 0x0c, 0x3e, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};

void setup() 
{
  Serial.begin(9600);
  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3D)) 
  { 
    Serial.println(F("SSD1306 allocation failed"));
    for(;;); // Don't proceed, loop forever
  }
  display.display();        delay(500); 
  display.clearDisplay();   display.display();
}
void loop() 
{
  display.drawRect(0,0,64,16,1);
  display.drawBitmap(0, 0, bitmap, 64, 16, 1);
  display.display();
}