#include <Arduino.h>
#include <U8g2lib.h>
#include <Wire.h>
uint8_t reset_pin = 8;
static const unsigned char image_sub1_10px_bits[] U8X8_PROGMEM = {0x02,0x01,0x49,0x02,0x85,0x02,0xb5,0x02,0xb5,0x02,0x01,0x02,0x32,0x01,0x30,0x00,0x30,0x00,0x30,0x00};
static const unsigned char image_Alert_9x8_bits[] U8X8_PROGMEM = {0x10,0x00,0x38,0x00,0x28,0x00,0x6c,0x00,0x6c,0x00,0xfe,0x00,0xee,0x00,0xff,0x01};
static const unsigned char image_Warning_30x23_bits[] U8X8_PROGMEM = {0x00,0xc0,0x00,0x00,0x00,0xe0,0x01,0x00,0x00,0xf0,0x03,0x00,0x00,0xf0,0x03,0x00,0x00,0xf8,0x07,0x00,0x00,0x3c,0x0f,0x00,0x00,0x3c,0x0f,0x00,0x00,0x3e,0x1f,0x00,0x00,0x3f,0x3f,0x00,0x00,0x3f,0x3f,0x00,0x80,0x3f,0x7f,0x00,0xc0,0x3f,0xff,0x00,0xc0,0x3f,0xff,0x00,0xe0,0x3f,0xff,0x01,0xf0,0x3f,0xff,0x03,0xf0,0x3f,0xff,0x03,0xf8,0x3f,0xff,0x07,0xfc,0xff,0xff,0x0f,0xfc,0xff,0xff,0x0f,0xfe,0x3f,0xff,0x1f,0xff,0x3f,0xff,0x3f,0xff,0xff,0xff,0x3f,0xfe,0xff,0xff,0x1f};
//8G2_SSD1309_128X64_NONAME2_F_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE);
//U8G2_SSD1309_128X64_NONAME0_F_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ 13, /* data=*/ 11, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);
//U8G2_SSD1309_128X64_NONAME0_F_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);
//U8G2_SSD1309_128X64_NONAME2_F_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ 13, /* data=*/ 11, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);
//U8G2_SSD1309_128X64_NONAME2_F_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);
//U8G2_SSD1309_128X64_NONAME0_F_HW_I2C(rotation, [reset [, clock, data]])
//U8G2_ST7567_JLX12864_F_HW_I2C u8g2(U8G2_R0,U8X8_PIN_NONE);
// U8G2_ST7567_ENH_DG128064_F_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE);
//U8G2_ST7567_HEM6432_F_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE);
// U8G2_SSD1309_128X64_NONAME2_1_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE); //[page buffer, size = 128 bytes]
// U8G2_SSD1309_128X64_NONAME2_2_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE); //[page buffer, size = 256 bytes]
// U8G2_SSD1309_128X64_NONAME2_F_HW_I2C u8g2(U8G2_R0, reset_pin); //[full framebuffer, size = 1024 bytes]
// U8G2_SSD1309_128X64_NONAME2_1_2ND_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE); //[page buffer, size = 128 bytes]
// U8G2_SSD1309_128X64_NONAME2_2_2ND_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE); //[page buffer, size = 256 bytes]
// U8G2_SSD1309_128X64_NONAME2_F_2ND_HW_I2C u8g2(U8G2_R0, reset_pin); //[full framebuffer, size = 1024 bytes]
// U8G2_SSD1309_128X64_NONAME0_1_HW_I2C u8g2(U8G2_R0, reset_pin); //[page buffer, size = 128 bytes]
// U8G2_SSD1309_128X64_NONAME0_2_HW_I2C u8g2(U8G2_R0, reset_pin); //[page buffer, size = 256 bytes]
U8G2_SSD1309_128X64_NONAME0_F_HW_I2C u8g2(U8G2_R0, reset_pin); // [full framebuffer, size = 1024 bytes] USE THIS ONE
//U8X8_SSD1309_128X64_NONAME0_2ND_HW_I2C u8g2(reset_pin);
// U8G2_SSD1309_128X64_NONAME0_1_2ND_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE); // [page buffer, size = 128 bytes]
// U8G2_SSD1309_128X64_NONAME0_2_2ND_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE); // [page buffer, size = 256 bytes]
// U8G2_SSD1309_128X64_NONAME0_F_2ND_HW_I2C u8g2(U8G2_R0, reset_pin); // [full framebuffer, size = 1024 bytes]
// Sketch uses 14406 bytes (29%) of program storage space. Maximum is 49152 bytes.
// Global variables use 1323 bytes (21%) of dynamic memory, leaving 4821 bytes for local variables. Maximum is 6144 bytes.
// Sketch uses 14422 bytes (29%) of program storage space. Maximum is 49152 bytes.
// Global variables use 427 bytes (6%) of dynamic memory, leaving 5717 bytes for local variables. Maximum is 6144 bytes.
uint8_t length = 120;
char len[4];
uint8_t SPD = 0;
char spd[4];
bool up = true;
bool flash = true;
uint8_t flash_count = 0;
void setup(void) {
u8g2.begin();
//u8g2.setContrast(111); // STD
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN,LOW);
//u8g2.setContrast(255); //Bright as poss
}
void loop(void) {
u8g2.clearBuffer();
u8g2.sendBuffer();
delay(50);
}