#include "U8glib.h"
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0 | U8G_I2C_OPT_NO_ACK | U8G_I2C_OPT_FAST); // Fast I2C / TWI
// 'project menus 2', 128x64px
const unsigned char epd_bitmap_project_menus_2 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
0x01, 0xd0, 0x01, 0xc0, 0x40, 0x00, 0xe0, 0x02, 0x10, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x02, 0x60, 0x82, 0x20, 0xc0, 0x01, 0x10, 0x00, 0x10, 0x04, 0x00, 0x00, 0x40, 0x00, 0x00, 0x02,
0x04, 0x31, 0x00, 0x21, 0x48, 0x81, 0x01, 0xc2, 0x10, 0x04, 0x1c, 0x38, 0xf0, 0x00, 0x00, 0x00,
0x08, 0x1a, 0x00, 0x42, 0x48, 0x81, 0x02, 0x22, 0x10, 0x04, 0x22, 0x44, 0x40, 0x00, 0x00, 0x02,
0x08, 0x0c, 0x00, 0x84, 0x48, 0x81, 0x02, 0x22, 0x10, 0x04, 0x22, 0x40, 0x40, 0x00, 0x00, 0x00,
0x08, 0x06, 0x01, 0x07, 0xc8, 0x81, 0x02, 0x22, 0x10, 0x04, 0x3e, 0x38, 0x40, 0x00, 0x00, 0x02,
0x04, 0x03, 0x02, 0x00, 0x48, 0x81, 0x02, 0x22, 0x10, 0x04, 0x20, 0x04, 0x40, 0x00, 0x00, 0x00,
0x02, 0x02, 0x02, 0x00, 0x45, 0x01, 0x12, 0x22, 0x10, 0x04, 0x22, 0x44, 0x40, 0x00, 0x00, 0x02,
0x03, 0x04, 0x03, 0xe0, 0x42, 0x00, 0xe1, 0xc2, 0x08, 0x04, 0x1c, 0x38, 0x30, 0x00, 0x00, 0x00,
0x04, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
0x08, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,
0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x87,
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27,
0x90, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37,
0x90, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37,
0x90, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x90, 0x04, 0x03, 0xc4, 0x12, 0x08, 0x10, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32,
0x90, 0x04, 0x02, 0x24, 0x12, 0x08, 0x10, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x90, 0x08, 0x02, 0x24, 0x93, 0x18, 0x18, 0xc7, 0x0f, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32,
0x9f, 0xff, 0xc2, 0x24, 0x92, 0xa8, 0x15, 0x48, 0x91, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x98, 0x08, 0x03, 0xc4, 0x92, 0x48, 0x12, 0x48, 0x91, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32,
0x94, 0x10, 0x02, 0x04, 0x92, 0x08, 0x10, 0x48, 0x91, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x94, 0x10, 0x02, 0x04, 0x92, 0x08, 0x10, 0x48, 0x91, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32,
0x92, 0x20, 0x02, 0x04, 0x92, 0x08, 0x10, 0x48, 0x91, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x92, 0x20, 0x02, 0x03, 0x62, 0x08, 0x10, 0x47, 0x0f, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32,
0x91, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x90, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62,
0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x82,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
0x00, 0x00, 0x00, 0x20, 0x0e, 0x1c, 0x41, 0x00, 0x04, 0x10, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00,
0x18, 0xc0, 0x00, 0x60, 0x11, 0x22, 0x41, 0x00, 0x04, 0x10, 0x00, 0x40, 0x00, 0x00, 0x00, 0x02,
0x15, 0x40, 0x00, 0xa0, 0x01, 0x22, 0x63, 0x1c, 0x06, 0x31, 0xc3, 0xc7, 0x00, 0x00, 0x00, 0x00,
0x12, 0x40, 0x01, 0x20, 0x02, 0x26, 0x55, 0x22, 0x05, 0x52, 0x24, 0x48, 0x80, 0x00, 0x00, 0x02,
0x10, 0x40, 0x02, 0x27, 0x84, 0x2a, 0x49, 0x02, 0x04, 0x92, 0x24, 0x48, 0x80, 0x00, 0x00, 0x00,
0x10, 0x4c, 0x03, 0xe0, 0x08, 0x32, 0x41, 0x1e, 0x04, 0x12, 0x24, 0x4f, 0x80, 0x00, 0x00, 0x02,
0x10, 0x52, 0x00, 0x20, 0x10, 0x22, 0x41, 0x22, 0x04, 0x12, 0x24, 0x48, 0x00, 0x00, 0x00, 0x00,
0x10, 0x42, 0x00, 0x20, 0x10, 0x22, 0x41, 0x22, 0x04, 0x12, 0x24, 0x48, 0x80, 0x00, 0x00, 0x02,
0x10, 0x4e, 0x00, 0x20, 0x1f, 0x1c, 0x41, 0x1e, 0x04, 0x11, 0xc3, 0xc7, 0x00, 0x00, 0x00, 0x00,
0x10, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
0x10, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x94, 0x00,
0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x14, 0x02,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1c, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x54, 0x02,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
// 'Icon_24vcoil ', 16x16px
const unsigned char epd_bitmap_Icon_24vcoil [] PROGMEM = {
0x00, 0x00, 0x00, 0x10, 0x02, 0x20, 0x07, 0x40, 0x09, 0x82, 0x10, 0xc4, 0x20, 0x68, 0x20, 0x30,
0x20, 0x18, 0x10, 0x0c, 0x08, 0x08, 0x0c, 0x10, 0x12, 0x20, 0x21, 0xc0, 0x40, 0x00, 0x00, 0x00
};
// 'Icon_gauge', 16x16px
const unsigned char epd_bitmap_Icon_gauge [] PROGMEM = {
0x03, 0xc0, 0x1c, 0x38, 0x22, 0xa4, 0x48, 0x02, 0x40, 0x0a, 0xa0, 0x01, 0x90, 0x05, 0xa8, 0x01,
0x84, 0x05, 0xa2, 0x01, 0x81, 0x85, 0x51, 0x82, 0x40, 0x02, 0x20, 0x04, 0x1c, 0x38, 0x03, 0xc0
};
// 'Icon_Ma', 16x16px
const unsigned char epd_bitmap_Icon_Ma [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x00, 0x55, 0x00, 0x49, 0x00, 0x41, 0x00,
0x41, 0x30, 0x41, 0x48, 0x41, 0x08, 0x41, 0x38, 0x41, 0x48, 0x41, 0x48, 0x00, 0x38, 0x00, 0x00
};
// 'Icon_PWM', 16x16px
const unsigned char epd_bitmap_Icon_PWM [] PROGMEM = {
0x00, 0x00, 0x40, 0x06, 0x40, 0x09, 0x40, 0x09, 0x40, 0x10, 0x40, 0x10, 0x40, 0x20, 0x7f, 0xff,
0x60, 0x20, 0x50, 0x40, 0x50, 0x40, 0x48, 0x80, 0x48, 0x80, 0x45, 0x00, 0x42, 0x00, 0x00, 0x00
};
// 'Icon_settings', 16x16px
const unsigned char epd_bitmap_Icon_settings [] PROGMEM = {
0x00, 0x00, 0x01, 0x80, 0x03, 0xc0, 0x07, 0xc0, 0x0f, 0x80, 0x1f, 0x8c, 0x1f, 0xde, 0x1f, 0xfe,
0x1f, 0xfc, 0x1f, 0xf8, 0x1f, 0xf0, 0x3f, 0xe0, 0x7c, 0x00, 0x38, 0x00, 0x10, 0x00, 0x00, 0x00
};
// Array of all bitmaps for convenience. (Total bytes used to store images in PROGMEM = 240)
const unsigned char* Icon_bitmap[5] = {
epd_bitmap_Icon_24vcoil,
epd_bitmap_Icon_Ma,
epd_bitmap_Icon_PWM,
epd_bitmap_Icon_gauge,
epd_bitmap_Icon_settings
};
// 'Tagg', 8x8px
const unsigned char epd_bitmap_Tagg [] PROGMEM = {
0x00, 0xe5, 0x45, 0x47, 0x55, 0x00, 0xff, 0x00
};
// 'Scroll_bar', 8x64px
const unsigned char epd_bitmap_Scroll_bar [] PROGMEM = {
0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00,
0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00,
0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00,
0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00
};
// 'Highlighted_bar', 128x21px
const unsigned char epd_bitmap_Highlighted_bar [] PROGMEM = {
0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80,
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60,
0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80
};
// 'Scroll_handle1', 8x64px
const unsigned char epd_bitmap_Scroll_handle1 [] PROGMEM = {
0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
// 'Scroll_handle2', 8x64px
const unsigned char epd_bitmap_Scroll_handle2 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07,
0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
// 'Scroll_handle3', 8x64px
const unsigned char epd_bitmap_Scroll_handle3 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
// 'Scroll_handle4', 8x64px
const unsigned char epd_bitmap_Scroll_handle4 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
// 'Scroll_handle5', 8x64px
const unsigned char epd_bitmap_Scroll_handle5 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
// 'Scroll_handle6', 8x64px
const unsigned char epd_bitmap_Scroll_handle6 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07
};
// 'Tomohawk_logo', 128x64px
const unsigned char epd_bitmap_Tomohawk_logo [] PROGMEM = {
0x00, 0x00, 0x00, 0x63, 0xff, 0x27, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0x01, 0xe0, 0x00,
0x00, 0x00, 0x00, 0xc7, 0x83, 0x17, 0xff, 0xff, 0xff, 0xf7, 0xfb, 0xff, 0xff, 0x80, 0xe0, 0x00,
0x00, 0x00, 0x01, 0x83, 0x02, 0x0f, 0xff, 0xff, 0xff, 0xfb, 0xfd, 0xff, 0xff, 0xc0, 0xe0, 0x00,
0x00, 0x00, 0x03, 0x87, 0x06, 0x07, 0xff, 0xff, 0xff, 0xf9, 0xfb, 0xff, 0xff, 0xe0, 0x60, 0x00,
0x00, 0x00, 0x07, 0x3e, 0x06, 0x07, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xfc, 0x03, 0xe0, 0x60, 0x00,
0x00, 0x00, 0x07, 0xc6, 0x0c, 0x1f, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xf0, 0x00, 0x30, 0x70, 0x00,
0x00, 0x00, 0x0c, 0x0c, 0x3c, 0x0f, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xe0, 0x00, 0x00, 0x70, 0x00,
0x00, 0x00, 0x1c, 0x0c, 0x18, 0x0f, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xc0, 0x38, 0x00, 0xf0, 0x00,
0x00, 0x00, 0x18, 0x08, 0x18, 0x0f, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xc0, 0x06, 0x00, 0x70, 0x00,
0x00, 0x00, 0x30, 0x18, 0x18, 0x0f, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xc0, 0x03, 0x80, 0x38, 0x00,
0x00, 0x00, 0x30, 0x30, 0x30, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xc0, 0x7f, 0xe0, 0x18, 0x00,
0x00, 0x00, 0x60, 0xf0, 0x30, 0x0f, 0xff, 0xff, 0xff, 0xff, 0x9f, 0xe1, 0xff, 0xfc, 0x0c, 0x00,
0x00, 0x00, 0x60, 0x70, 0x30, 0x0f, 0xff, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xff, 0x0e, 0x00,
0x00, 0x00, 0xc0, 0x3c, 0x70, 0x1f, 0xff, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xff, 0x0e, 0x00,
0x00, 0x00, 0xc0, 0x70, 0x60, 0x1f, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0x8e, 0x00,
0x00, 0x01, 0x80, 0x60, 0x60, 0x5f, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x9f, 0xff, 0xff, 0xfe, 0x00,
0x00, 0x01, 0x80, 0xc0, 0xe0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x9b, 0xff, 0xff, 0xfe, 0x00,
0x00, 0x03, 0x00, 0xc0, 0xe0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x19, 0xff, 0xff, 0xfc, 0x00,
0x00, 0x03, 0x00, 0xc0, 0xc0, 0x3f, 0xff, 0xff, 0xff, 0xfe, 0x3c, 0x0c, 0xff, 0xfe, 0x70, 0x00,
0x00, 0x07, 0x01, 0x80, 0xc0, 0x1f, 0xff, 0xff, 0xff, 0xfc, 0x78, 0x04, 0x3f, 0xfc, 0x30, 0x00,
0x00, 0x06, 0x01, 0x81, 0xc0, 0x1f, 0xff, 0xff, 0xff, 0xfc, 0x78, 0x07, 0x3f, 0xfa, 0x30, 0x00,
0x00, 0x06, 0x01, 0x81, 0xc0, 0x1f, 0xff, 0xff, 0xff, 0xf8, 0xfe, 0x03, 0xff, 0x71, 0x30, 0x00,
0x00, 0x06, 0x07, 0x81, 0x81, 0x3f, 0xff, 0xff, 0xff, 0xf0, 0xfc, 0x00, 0x00, 0x40, 0x18, 0x00,
0x00, 0x0c, 0x07, 0x01, 0x80, 0xbf, 0xff, 0xff, 0xff, 0xf0, 0xf8, 0x00, 0x00, 0x80, 0x08, 0x00,
0x00, 0x0c, 0x03, 0x01, 0x80, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xf8, 0x00, 0x00, 0x00, 0x0c, 0x00,
0x00, 0x0c, 0x03, 0xe1, 0x80, 0x7f, 0xff, 0xff, 0xff, 0xf0, 0x78, 0x00, 0x00, 0x00, 0x06, 0x00,
0x00, 0x0c, 0x03, 0xc3, 0xc0, 0x7f, 0xff, 0xff, 0xff, 0xf8, 0x78, 0x00, 0x00, 0x00, 0x06, 0x00,
0x00, 0x1c, 0x03, 0x83, 0xc0, 0x7b, 0xff, 0xff, 0xff, 0xfc, 0x3c, 0x00, 0x00, 0x00, 0x0e, 0x00,
0x00, 0x18, 0x07, 0x03, 0x40, 0x79, 0xff, 0xff, 0xff, 0xfe, 0x3e, 0x00, 0x00, 0x00, 0x1c, 0x00,
0x00, 0x18, 0x06, 0x03, 0x20, 0x78, 0xff, 0xff, 0xff, 0xff, 0x9e, 0x00, 0x00, 0x00, 0x38, 0x00,
0x00, 0x18, 0x06, 0x03, 0x21, 0x78, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x00, 0x00, 0x00, 0x70, 0x00,
0x00, 0x18, 0x0e, 0x03, 0x01, 0xf8, 0xff, 0xff, 0xff, 0x3f, 0xc7, 0x82, 0x7f, 0x80, 0x60, 0x00,
0x00, 0x18, 0x0e, 0x02, 0x00, 0xfc, 0x7f, 0xff, 0xfe, 0x1f, 0xe3, 0x87, 0xff, 0xc0, 0x60, 0x00,
0x00, 0x18, 0x0c, 0x82, 0x00, 0x66, 0x1f, 0xff, 0xfe, 0x0f, 0xf9, 0xff, 0xfe, 0x00, 0x60, 0x00,
0x00, 0x18, 0x1f, 0x02, 0x00, 0xe3, 0x0f, 0xff, 0xfc, 0x03, 0xff, 0xff, 0xec, 0x00, 0x20, 0x00,
0x00, 0x18, 0x1e, 0x02, 0x00, 0xe1, 0xc3, 0xff, 0xfe, 0x01, 0xff, 0xff, 0xcc, 0x00, 0x20, 0x00,
0x00, 0x1d, 0x1e, 0x02, 0x00, 0xe0, 0xe1, 0xff, 0xfe, 0x01, 0xff, 0xfc, 0x98, 0x00, 0x20, 0x00,
0x00, 0x1d, 0x3c, 0x02, 0x00, 0xe0, 0x3f, 0xff, 0xff, 0x19, 0xff, 0xf8, 0x98, 0x00, 0x30, 0x00,
0x00, 0x1d, 0x3c, 0x02, 0x00, 0xc0, 0x0f, 0xff, 0xff, 0x19, 0xff, 0xfd, 0x9c, 0x00, 0x10, 0x00,
0x00, 0x1f, 0xfc, 0x00, 0x00, 0xc0, 0x01, 0xff, 0xff, 0x19, 0xff, 0xf3, 0xfe, 0x64, 0x10, 0x00,
0x00, 0x1f, 0xfc, 0x00, 0x01, 0xc0, 0x00, 0x00, 0x07, 0x9f, 0xff, 0xf1, 0x19, 0x9a, 0xf0, 0x00,
0x00, 0x1f, 0xfc, 0x00, 0x01, 0xc0, 0x00, 0x00, 0x03, 0x9f, 0xff, 0xe1, 0x11, 0x99, 0x30, 0x00,
0x00, 0x1f, 0xec, 0x00, 0x05, 0xc0, 0x00, 0x00, 0x03, 0x9f, 0xff, 0xf9, 0x11, 0x11, 0x30, 0x00,
0x00, 0x1f, 0xec, 0x00, 0x03, 0x80, 0x00, 0x00, 0x03, 0x9f, 0xff, 0xff, 0x99, 0x11, 0x10, 0x00,
0x00, 0x1f, 0xcc, 0x00, 0x03, 0x80, 0x00, 0x00, 0x03, 0x8f, 0xff, 0xf3, 0xf9, 0x91, 0x10, 0x00,
0x00, 0x1f, 0xce, 0x00, 0x01, 0x80, 0x00, 0x00, 0x03, 0x8f, 0xff, 0xf1, 0x3f, 0xff, 0x10, 0x00,
0x00, 0x1f, 0xce, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x8f, 0xfe, 0xf2, 0x11, 0xff, 0xe0, 0x00,
0x00, 0x1f, 0x8e, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x8f, 0xff, 0x7f, 0x10, 0x13, 0x60, 0x00,
0x00, 0x3f, 0x8e, 0x02, 0x01, 0x80, 0x00, 0x00, 0x01, 0x8f, 0xff, 0x7f, 0xf9, 0x12, 0x20, 0x00,
0x00, 0x3f, 0x06, 0x07, 0x21, 0x80, 0x00, 0x00, 0x01, 0xcf, 0xff, 0x3f, 0xff, 0xb6, 0x40, 0x00,
0x00, 0x3a, 0x06, 0x0f, 0x93, 0x00, 0x00, 0x00, 0x01, 0xcf, 0xff, 0x9f, 0xff, 0xff, 0xc0, 0x00,
0x00, 0x30, 0x06, 0x3f, 0xfb, 0x00, 0x00, 0x00, 0x00, 0xcf, 0xff, 0xc3, 0xff, 0xff, 0x80, 0x00,
0x00, 0x60, 0x06, 0x7f, 0xff, 0x00, 0x00, 0x00, 0x00, 0xe7, 0xff, 0xe0, 0xff, 0xff, 0x80, 0x00,
0x00, 0x40, 0x02, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0xf3, 0xff, 0xf0, 0x4f, 0xff, 0x80, 0x00,
0x00, 0x00, 0x03, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xfc, 0x00, 0xff, 0x80, 0x00,
0x00, 0x00, 0x03, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xfe, 0x00, 0x27, 0x80, 0x00,
0x00, 0x00, 0x03, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0x00, 0x01, 0x80, 0x00,
0x00, 0x00, 0x03, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xe0, 0x01, 0xc0, 0x00,
0x00, 0x00, 0x03, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfe, 0x78, 0x00, 0xc0, 0x00,
0x00, 0x00, 0x01, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfe, 0x00, 0x00, 0xc0, 0x00,
0x00, 0x00, 0x01, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xc0, 0x00, 0xc0, 0x00,
0x00, 0x00, 0x01, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf8, 0x01, 0x80, 0x00,
0x00, 0x00, 0x01, 0xfd, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0x87, 0x80, 0x00,
0x00, 0x00, 0x00, 0xfd, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0x00, 0x00
};
// Array of all bitmaps for convenience. (Total bytes used to store images in PROGMEM = 480)
const unsigned char* Scroll_handle_bitmap[6] = {
epd_bitmap_Scroll_handle1,
epd_bitmap_Scroll_handle2,
epd_bitmap_Scroll_handle3,
epd_bitmap_Scroll_handle4,
epd_bitmap_Scroll_handle5,
epd_bitmap_Scroll_handle6
};
//pins outs for buttons
#define BUTTON_UP_PIN 7
#define BUTTON_SELECT_PIN 4
#define BUTTON_DOWN_PIN 2
const int Num_Items = 5;
int button_up_pushed; // stop dould scroll when buton presed
int button_select_pushed;
int button_down_pushed;
int Caseval = 0;//item selected from menu int for switch routine
int Selected_Item = 0; //Which is item selected in the menu
int Previous_Item; // Item before selected one
int Next_Item; // Item after selected one
char menu_items[Num_Items] [20] = {
("24v Coil Test"),
("4-20ma Mode"),
("PWM Mode"),
("gauge Mode"),
("settings")
};
void setup() {
pinMode(BUTTON_UP_PIN, INPUT_PULLUP);
pinMode(BUTTON_SELECT_PIN, INPUT_PULLUP);
pinMode(BUTTON_DOWN_PIN, INPUT_PULLUP);
Serial.begin(9600);
u8g.setFont(u8g_font_tpssb);
u8g.setColorIndex(1);
u8g.firstPage();
do{
u8g.drawBitmapP( 0, 0, 128/8, 64, epd_bitmap_Tomohawk_logo); // startup logo
} while ( u8g.nextPage() );
delay (1000);
u8g.firstPage();
do{
u8g.setFont(u8g_font_7x14);
u8g.drawStr(22, 40, "Tomohawk Tec");
} while ( u8g.nextPage() );
delay (2000);
}
void loop() {
bailout:
// button comands
if (digitalRead(BUTTON_UP_PIN) == LOW && (button_up_pushed == 0)){// up button pressed
Selected_Item = Selected_Item -1;
button_up_pushed = 1;
if (Selected_Item < 0){
Selected_Item = Num_Items -1;}
}
else if (digitalRead(BUTTON_DOWN_PIN) == LOW && (button_down_pushed == 0)) { // down button pressed
Selected_Item = Selected_Item +1;
button_down_pushed = 1;
if (Selected_Item >= Num_Items) {
Selected_Item = 0;}
}
else if (digitalRead(BUTTON_SELECT_PIN) == LOW && (button_select_pushed == 0)) { // select button pressed
button_select_pushed = 1;// go to selected item
Caseval = Selected_Item;
}
// Reset buttons
if (digitalRead(BUTTON_UP_PIN) == HIGH && (button_up_pushed == 1)) { // un-toggle button
button_up_pushed = 0;
}
if (digitalRead(BUTTON_DOWN_PIN) == HIGH && (button_down_pushed == 1)) { // un-toggle button
button_down_pushed = 0;
}
if (digitalRead(BUTTON_SELECT_PIN) == HIGH && (button_select_pushed == 1)) { // un-toggle button
button_select_pushed = 0;
}
Previous_Item = Selected_Item -1;
if (Previous_Item < 0 ) {Previous_Item = Num_Items -1;}// prev item below fist make it last
Next_Item = Selected_Item +1;
if (Selected_Item >= Num_Items) {Next_Item = 0;} //next Item last then make it the first
u8g.firstPage();
do {//icon starup positions draw
// Draw for top menu item
u8g.drawBitmapP( 2, 2, 16/8, 16, Icon_bitmap[Previous_Item] );
u8g.setFont(u8g_font_7x14);
u8g.drawStr(22, 15, menu_items[Previous_Item]);
// Draw for middle menu item in bold
u8g.drawBitmapP( 2, 24, 16/8, 16, Icon_bitmap[Selected_Item] );
u8g.setFont(u8g_font_7x14B);
u8g.drawStr(22, 38, menu_items[Selected_Item]);
u8g.drawBitmapP( 120, 0, 8/8, 64, Scroll_handle_bitmap[Selected_Item] );
// Text draw bottom
u8g.drawBitmapP( 2, 46, 16/8, 16, Icon_bitmap[Next_Item] );
u8g.setFont(u8g_font_7x14);
u8g.drawStr(22, 58, menu_items[Next_Item]);
//higlighted bar background position draw
u8g.drawBitmapP( 0, 22, 128/8, 21, epd_bitmap_Highlighted_bar );
//Scroll bar position draw
u8g.drawBitmapP( 120, 0, 8/8, 64, epd_bitmap_Scroll_bar );
//Tagg position draw
u8g.drawBitmapP( 110, 56, 8/8, 8, epd_bitmap_Tagg );
} while ( u8g.nextPage() );
//sub menu loop
restart:
Serial.print(Caseval);Serial.print(Selected_Item);
if (Caseval == 0) {goto bailout;}
//button routine
if (digitalRead(BUTTON_UP_PIN) == LOW && (button_up_pushed == 0)){// up button pressed
Selected_Item = Selected_Item -1;
button_up_pushed = 1;
if (Selected_Item < 0){
Selected_Item = Num_Items -1;}
}
else if (digitalRead(BUTTON_DOWN_PIN) == LOW && (button_down_pushed == 0)) { // down button pressed
Selected_Item = Selected_Item +1;
button_down_pushed = 1;
if (Selected_Item >= Num_Items) {
Selected_Item = 0;}
}
else if (digitalRead(BUTTON_SELECT_PIN) == LOW && (button_select_pushed == 0)) { // select button pressed
button_select_pushed = 1;// go to selected item
Caseval = Selected_Item;
}
// Reset buttons
if (digitalRead(BUTTON_UP_PIN) == HIGH && (button_up_pushed == 1)) { // un-toggle button
button_up_pushed = 0;
}
if (digitalRead(BUTTON_DOWN_PIN) == HIGH && (button_down_pushed == 1)) { // un-toggle button
button_down_pushed = 0;
}
if (digitalRead(BUTTON_SELECT_PIN) == HIGH && (button_select_pushed == 1)) { // un-toggle button
button_select_pushed = 0;
}
u8g.firstPage();
do {
u8g.setFont(u8g_font_7x14B);
u8g.drawStr(22, 18, "Caseval is shit");
} while ( u8g.nextPage() );
if (Caseval == 1) {goto restart;}
}