Hello friends.
Good Day.
I don’t have much knowledge about Arduino, so I am facing a problem.
The problem is this:
I have made two separate sketches. One is a fingerprint–bitmap sketch, and the other is a battery-level indicator bitmap sketch.
I want to display both sketches using a single OLED display. The OLED is connected to the fingerprint board, and the other board shows the battery sketch.
I cannot understand how to do this. I came here to ask for help from you.
I am attaching both sketches. If possible, please help me.
Finger print Oled sketch
#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <FastLED.h>
// ------------------ PINS ------------------
#define RELAY 8
#define LED_PIN 6
#define NUM_LEDS 1
CRGB leds[NUM_LEDS];
// ------------------ OLED ------------------
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
// -------------- Fingerprint ------------------
SoftwareSerial fingerSerial(2, 3);
Adafruit_Fingerprint finger(&fingerSerial);
// ------------------ States ------------------
bool firstTime = true;
bool relayState = false;
bool firstRelayOnDone = false;
uint8_t rainbowHue = 0;
// ------------------ Bitmaps -------------
const unsigned char touch_logo [] PROGMEM = {
0x00,0x00,0x00,0x1f,0xe0,0x00,0x00,0x00
,0x00,0x00,0x01,0xff,0xfe,0x00,0x00,0x00
,0x00,0x00,0x03,0xff,0xff,0x80,0x00,0x00
,0x00,0x00,0x0f,0xc0,0x0f,0xe0,0x00,0x00
,0x00,0x00,0x1f,0x00,0x01,0xf8,0x00,0x00
,0x00,0x00,0x3c,0x00,0x00,0x7c,0x00,0x00
,0x00,0x00,0x78,0x00,0x00,0x3e,0x00,0x00
,0x00,0x00,0xf0,0x3f,0xf8,0x0f,0x00,0x00
,0x00,0x01,0xe0,0xff,0xfe,0x07,0x80,0x00
,0x00,0x03,0xc3,0xff,0xff,0x03,0x80,0x00
,0x00,0x03,0x87,0xc0,0x07,0xc3,0xc0,0x00
,0x00,0x07,0x0f,0x00,0x03,0xe1,0xc0,0x00
,0x00,0x0f,0x0e,0x00,0x00,0xe0,0xe0,0x00
,0x00,0x0e,0x1c,0x00,0x00,0xf0,0xe0,0x00
,0x00,0x0c,0x3c,0x1f,0xe0,0x70,0xe0,0x00
,0x00,0x00,0x38,0x3f,0xf0,0x38,0x70,0x00
,0x00,0x00,0x78,0x78,0xf8,0x38,0x70,0x00
,0x00,0x00,0x70,0x70,0x3c,0x18,0x70,0x00
,0x00,0x00,0xe0,0xe0,0x1e,0x1c,0x70,0x00
,0x00,0x03,0xe1,0xe0,0x0e,0x1c,0x70,0x00
,0x00,0x0f,0xc1,0xc3,0x0e,0x1c,0x70,0x00
,0x00,0x3f,0x03,0xc3,0x8e,0x1c,0x70,0x00
,0x00,0x3e,0x03,0x87,0x0e,0x1c,0x70,0x00
,0x00,0x30,0x07,0x07,0x0e,0x18,0xe0,0x00
,0x00,0x00,0x0e,0x0e,0x0e,0x38,0xe0,0x00
,0x00,0x00,0x3e,0x1e,0x1e,0x38,0xe0,0x00
,0x00,0x00,0xf8,0x1c,0x1c,0x38,0xe0,0x00
,0x00,0x03,0xf0,0x38,0x3c,0x38,0xe0,0x00
,0x00,0x3f,0xc0,0xf8,0x78,0x38,0xe0,0x00
,0x00,0x7f,0x01,0xf0,0x70,0x38,0xf0,0x00
,0x00,0x78,0x03,0xe0,0xe0,0x38,0x70,0x00
,0x00,0x00,0x0f,0x81,0xe0,0x38,0x7c,0x00
,0x00,0x00,0x3f,0x03,0xc0,0x38,0x3e,0x00
,0x00,0x00,0xfc,0x0f,0x80,0x38,0x1e,0x00
,0x00,0x07,0xf0,0x1f,0x1c,0x1c,0x04,0x00
,0x00,0x3f,0xc0,0x3e,0x3f,0x1e,0x00,0x00
,0x00,0x7f,0x00,0xf8,0x7f,0x0f,0x00,0x00
,0x00,0x38,0x01,0xf0,0xf7,0x07,0xc0,0x00
,0x00,0x00,0x07,0xe1,0xe3,0x83,0xf8,0x00
,0x00,0x00,0x3f,0x87,0xc3,0xc0,0xfc,0x00
,0x00,0x01,0xfe,0x0f,0x81,0xe0,0x3c,0x00
,0x00,0x0f,0xf8,0x1f,0x00,0xf0,0x00,0x00
,0x00,0x1f,0xc0,0x7c,0x00,0x7c,0x00,0x00
,0x00,0x1e,0x01,0xf8,0x00,0x3f,0x00,0x00
,0x00,0x00,0x07,0xe0,0x78,0x0f,0xc0,0x00
,0x00,0x00,0x3f,0x81,0xfe,0x07,0xf0,0x00
,0x00,0x01,0xfe,0x07,0xff,0x01,0xf0,0x00
,0x00,0x07,0xf8,0x0f,0x87,0x80,0x30,0x00
,0x00,0x07,0xc0,0x3f,0x03,0xe0,0x00,0x00
,0x00,0x06,0x00,0xfc,0x01,0xf8,0x00,0x00
,0x00,0x00,0x03,0xf0,0x00,0x7e,0x00,0x00
,0x00,0x00,0x0f,0xc0,0x00,0x3f,0x80,0x00
,0x00,0x00,0x7f,0x00,0xf8,0x0f,0x80,0x00
,0x00,0x00,0xfc,0x03,0xfe,0x01,0x80,0x00
,0x00,0x00,0xf0,0x1f,0xff,0x80,0x00,0x00
,0x00,0x00,0x00,0x7f,0x07,0xe0,0x00,0x00
,0x00,0x00,0x00,0xfc,0x03,0xf8,0x00,0x00
,0x00,0x00,0x03,0xf0,0x00,0x78,0x00,0x00
,0x00,0x00,0x0f,0xc0,0x00,0x18,0x00,0x00
,0x00,0x00,0x0f,0x01,0xf8,0x00,0x00,0x00
,0x00,0x00,0x00,0x07,0xfe,0x00,0x00,0x00
,0x00,0x00,0x00,0x1f,0xfe,0x00,0x00,0x00
,0x00,0x00,0x00,0x1e,0x0e,0x00,0x00,0x00
,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00
};
const unsigned char scan_logo [] 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,0x1f,0xf8,0x00,0x00,0x00
,0x00,0x00,0x00,0x7f,0xff,0x00,0x00,0x00
,0x00,0x00,0x01,0xfc,0x7f,0xc0,0x00,0x00
,0x00,0x00,0x03,0xc0,0x03,0xe0,0x00,0x00
,0x00,0x00,0x07,0x80,0x00,0xf0,0x00,0x00
,0x00,0x00,0x0e,0x00,0x00,0x3c,0x00,0x00
,0x00,0x00,0x1c,0x1f,0xfc,0x1c,0x00,0x00
,0x00,0x00,0x38,0x7f,0xfe,0x0e,0x00,0x00
,0x00,0x00,0x78,0xf8,0x0f,0x87,0x00,0x00
,0x00,0x00,0x71,0xe0,0x03,0xc7,0x00,0x00
,0x00,0x00,0xe3,0x80,0x01,0xc3,0x80,0x00
,0x00,0x00,0xc3,0x83,0xc0,0xe3,0x80,0x00
,0x00,0x00,0xc7,0x0f,0xf0,0x71,0x80,0x00
,0x00,0x00,0x06,0x1f,0xf8,0x71,0xc0,0x00
,0x00,0x00,0x0e,0x1c,0x3c,0x31,0xc0,0x00
,0x00,0x00,0x1c,0x38,0x1c,0x31,0xc0,0x00
,0x00,0x00,0x38,0x70,0x0e,0x39,0xc0,0x00
,0x00,0x01,0xf0,0x71,0x8e,0x39,0xc0,0x00
,0x00,0x03,0xe0,0xe1,0x86,0x31,0xc0,0x00
,0x00,0x03,0x81,0xe3,0x8e,0x31,0x80,0x00
,0x00,0x00,0x03,0xc3,0x8e,0x33,0x80,0x00
,0x00,0x00,0x07,0x87,0x0c,0x73,0x80,0x00
,0x00,0x00,0x1f,0x0e,0x1c,0x73,0x80,0x00
,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xfe
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xfe
,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,0x03,0xf0,0x1e,0x3e,0x1c,0x00,0x00
,0x00,0x03,0x80,0x7c,0x77,0x0f,0x00,0x00
,0x00,0x00,0x01,0xf0,0xe3,0x07,0xc0,0x00
,0x00,0x00,0x07,0xe3,0xc3,0x81,0xf0,0x00
,0x00,0x00,0x3f,0x87,0x81,0xc0,0x60,0x00
,0x00,0x01,0xfc,0x1f,0x00,0xf0,0x00,0x00
,0x00,0x01,0xe0,0x3c,0x00,0x7c,0x00,0x00
,0x00,0x00,0x00,0xf8,0x78,0x1f,0x00,0x00
,0x00,0x00,0x07,0xe0,0xfc,0x0f,0xc0,0x00
,0x00,0x00,0x3f,0x83,0xef,0x03,0xc0,0x00
,0x00,0x00,0xfc,0x0f,0x87,0x80,0x00,0x00
,0x00,0x00,0x70,0x1f,0x03,0xe0,0x00,0x00
,0x00,0x00,0x00,0x7c,0x00,0xf8,0x00,0x00
,0x00,0x00,0x01,0xf0,0x00,0x3e,0x00,0x00
,0x00,0x00,0x0f,0xc0,0xf8,0x0f,0x00,0x00
,0x00,0x00,0x1f,0x03,0xfe,0x02,0x00,0x00
,0x00,0x00,0x0c,0x0f,0x8f,0x80,0x00,0x00
,0x00,0x00,0x00,0x3f,0x03,0xe0,0x00,0x00
,0x00,0x00,0x00,0xf8,0x00,0xf0,0x00,0x00
,0x00,0x00,0x01,0xe0,0x00,0x30,0x00,0x00
,0x00,0x00,0x01,0xc0,0xf8,0x00,0x00,0x00
,0x00,0x00,0x00,0x07,0xfe,0x00,0x00,0x00
,0x00,0x00,0x00,0x0f,0x8e,0x00,0x00,0x00
,0x00,0x00,0x00,0x06,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
};
const unsigned char match_logo [] PROGMEM = {
0x00,0x00,0x03,0xfe,0x00,0x00,0x00,0x00
,0x00,0x00,0x1f,0xff,0xe0,0x00,0x00,0x00
,0x00,0x00,0x7f,0xff,0xf8,0x00,0x00,0x00
,0x00,0x00,0xfc,0x00,0xfe,0x00,0x00,0x00
,0x00,0x03,0xe0,0x00,0x1f,0x00,0x00,0x00
,0x00,0x07,0xc0,0x00,0x07,0x80,0x00,0x00
,0x00,0x0f,0x80,0x00,0x03,0xe0,0x00,0x00
,0x00,0x0e,0x03,0xff,0x01,0xe0,0x00,0x00
,0x00,0x1c,0x1f,0xff,0xe0,0xf0,0x00,0x00
,0x00,0x3c,0x3f,0xff,0xf0,0x78,0x00,0x00
,0x00,0x78,0x7c,0x00,0xf8,0x3c,0x00,0x00
,0x00,0x70,0xf0,0x00,0x3c,0x1c,0x00,0x00
,0x00,0xe1,0xe0,0x00,0x1e,0x1c,0x00,0x00
,0x00,0xe1,0xc0,0x00,0x0f,0x0e,0x00,0x00
,0x00,0xc3,0x81,0xfc,0x07,0x0e,0x00,0x00
,0x00,0x03,0x83,0xff,0x07,0x8e,0x00,0x00
,0x00,0x07,0x07,0x8f,0x83,0x87,0x00,0x00
,0x00,0x0f,0x0f,0x03,0xc3,0x87,0x00,0x00
,0x00,0x1e,0x0e,0x01,0xc3,0x87,0x00,0x00
,0x00,0x3c,0x1c,0x00,0xe1,0x87,0x00,0x00
,0x00,0xf8,0x1c,0x30,0xe1,0x87,0x00,0x00
,0x07,0xf0,0x38,0x70,0xe1,0x86,0x00,0x00
,0x07,0xc0,0x78,0x70,0xe3,0x8e,0x00,0x00
,0x02,0x00,0xf0,0xf0,0xe3,0x8e,0x00,0x00
,0x00,0x01,0xe0,0xe0,0xe3,0x8e,0x00,0x00
,0x00,0x03,0xc1,0xe1,0xc3,0x8e,0x00,0x00
,0x00,0x0f,0x83,0xc3,0xc3,0x8e,0x00,0x00
,0x00,0x7f,0x07,0x83,0x83,0x0e,0x00,0x00
,0x07,0xfc,0x0f,0x07,0x83,0x0e,0x00,0x00
,0x07,0xf0,0x1e,0x0f,0x03,0x0e,0x00,0x00
,0x07,0x80,0x7c,0x1e,0x03,0x07,0x00,0x00
,0x00,0x00,0xf8,0x3c,0x03,0x87,0x80,0x00
,0x00,0x03,0xf0,0x78,0x03,0x83,0xc0,0x00
,0x00,0x1f,0xc0,0xf0,0x02,0x00,0x00,0x00
,0x00,0xff,0x01,0xe1,0xc0,0x0c,0x00,0x00
,0x07,0xfc,0x03,0xc3,0xe1,0xff,0xc0,0x00
,0x07,0xe0,0x0f,0x87,0xc7,0xff,0xf0,0x00
,0x07,0x00,0x3f,0x0f,0x0f,0xff,0xfc,0x00
,0x00,0x00,0x7c,0x3e,0x3f,0xff,0xfe,0x00
,0x00,0x03,0xf8,0x7c,0x3f,0xff,0xff,0x00
,0x00,0x1f,0xe0,0xf0,0x7f,0xff,0xff,0x80
,0x00,0xff,0x83,0xe0,0xff,0xff,0xff,0x80
,0x01,0xfc,0x07,0xc1,0xff,0xff,0xe3,0xc0
,0x01,0xe0,0x1f,0x01,0xff,0xff,0xc3,0xc0
,0x00,0x00,0xfe,0x01,0xff,0xff,0x87,0xe0
,0x00,0x03,0xf8,0x13,0xff,0xff,0x0f,0xe0
,0x00,0x1f,0xe0,0x73,0xff,0xfe,0x1f,0xe0
,0x00,0x7f,0x81,0xf3,0xff,0xfc,0x1f,0xe0
,0x00,0xfc,0x03,0xe3,0xef,0xf8,0x3f,0xe0
,0x00,0x60,0x0f,0xc3,0xc7,0xf0,0x7f,0xe0
,0x00,0x00,0x3f,0x03,0xc3,0xe0,0xff,0xe0
,0x00,0x00,0xfc,0x03,0xc1,0xc1,0xff,0xe0
,0x00,0x07,0xf0,0x13,0xe0,0x83,0xff,0xe0
,0x00,0x0f,0xc0,0x7b,0xf8,0x07,0xff,0xe0
,0x00,0x0f,0x01,0xf9,0xfc,0x0f,0xff,0xc0
,0x00,0x00,0x07,0xf1,0xfe,0x1f,0xff,0xc0
,0x00,0x00,0x1f,0xc0,0xff,0x3f,0xff,0x80
,0x00,0x00,0x7e,0x00,0xff,0xff,0xff,0x80
,0x00,0x00,0xfc,0x00,0x7f,0xff,0xff,0x00
,0x00,0x00,0xf0,0x1f,0x3f,0xff,0xfe,0x00
,0x00,0x00,0x00,0x7f,0x1f,0xff,0xfc,0x00
,0x00,0x00,0x01,0xff,0x8f,0xff,0xf8,0x00
,0x00,0x00,0x03,0xe0,0xe3,0xff,0xe0,0x00
,0x00,0x00,0x01,0x80,0x00,0x7f,0x00,0x00
};
const unsigned char error_logo [] PROGMEM = {
0x00,0x00,0x03,0xfe,0x00,0x00,0x00,0x00
,0x00,0x00,0x1f,0xff,0xe0,0x00,0x00,0x00
,0x00,0x00,0x7f,0xff,0xf8,0x00,0x00,0x00
,0x00,0x00,0xfc,0x00,0xfe,0x00,0x00,0x00
,0x00,0x03,0xe0,0x00,0x1f,0x00,0x00,0x00
,0x00,0x07,0xc0,0x00,0x07,0x80,0x00,0x00
,0x00,0x0f,0x80,0x00,0x03,0xe0,0x00,0x00
,0x00,0x0e,0x03,0xff,0x01,0xe0,0x00,0x00
,0x00,0x1c,0x1f,0xff,0xe0,0xf0,0x00,0x00
,0x00,0x3c,0x3f,0xff,0xf0,0x78,0x00,0x00
,0x00,0x78,0x7c,0x00,0xf8,0x3c,0x00,0x00
,0x00,0x70,0xf0,0x00,0x3c,0x1c,0x00,0x00
,0x00,0xe1,0xe0,0x00,0x1e,0x1c,0x00,0x00
,0x00,0xe1,0xc0,0x00,0x0f,0x0e,0x00,0x00
,0x00,0xc3,0x81,0xfc,0x07,0x0e,0x00,0x00
,0x00,0x03,0x83,0xff,0x07,0x8e,0x00,0x00
,0x00,0x07,0x07,0x8f,0x83,0x87,0x00,0x00
,0x00,0x0f,0x0f,0x03,0xc3,0x87,0x00,0x00
,0x00,0x1e,0x0e,0x01,0xc3,0x87,0x00,0x00
,0x00,0x3c,0x1c,0x00,0xe1,0x87,0x00,0x00
,0x00,0xf8,0x1c,0x30,0xe1,0x87,0x00,0x00
,0x07,0xf0,0x38,0x70,0xe1,0x86,0x00,0x00
,0x07,0xc0,0x78,0x70,0xe3,0x8e,0x00,0x00
,0x02,0x00,0xf0,0xf0,0xe3,0x8e,0x00,0x00
,0x00,0x01,0xe0,0xe0,0xe3,0x8e,0x00,0x00
,0x00,0x03,0xc1,0xe1,0xc3,0x8e,0x00,0x00
,0x00,0x0f,0x83,0xc3,0xc3,0x8e,0x00,0x00
,0x00,0x7f,0x07,0x83,0x83,0x0e,0x00,0x00
,0x07,0xfc,0x0f,0x07,0x83,0x0e,0x00,0x00
,0x07,0xf0,0x1e,0x0f,0x03,0x0e,0x00,0x00
,0x07,0x80,0x7c,0x1e,0x03,0x07,0x00,0x00
,0x00,0x00,0xf8,0x3c,0x03,0x87,0x80,0x00
,0x00,0x03,0xf0,0x78,0x03,0x83,0xc0,0x00
,0x00,0x1f,0xc0,0xf0,0x02,0x00,0x00,0x00
,0x00,0xff,0x01,0xe1,0xc0,0x00,0x00,0x00
,0x07,0xfc,0x03,0xc3,0xe1,0xff,0xc0,0x00
,0x07,0xe0,0x0f,0x87,0xc7,0xff,0xf0,0x00
,0x07,0x00,0x3f,0x0f,0x0f,0xff,0xf8,0x00
,0x00,0x00,0x7c,0x3e,0x1f,0xff,0xfe,0x00
,0x00,0x03,0xf8,0x7c,0x3f,0xff,0xff,0x00
,0x00,0x1f,0xe0,0xf0,0x7f,0xff,0xff,0x00
,0x00,0xff,0x83,0xe0,0xfe,0xff,0xbf,0x80
,0x01,0xfc,0x07,0xc0,0xfc,0x7f,0x1f,0xc0
,0x01,0xe0,0x1f,0x01,0xf8,0x3e,0x0f,0xc0
,0x00,0x00,0xfe,0x01,0xf8,0x1c,0x07,0xe0
,0x00,0x03,0xf8,0x13,0xf8,0x00,0x0f,0xe0
,0x00,0x1f,0xe0,0x73,0xfc,0x00,0x1f,0xe0
,0x00,0x7f,0x81,0xf3,0xfe,0x00,0x3f,0xe0
,0x00,0xfc,0x03,0xe3,0xff,0x00,0x7f,0xe0
,0x00,0x60,0x0f,0xc3,0xff,0x80,0xff,0xe0
,0x00,0x00,0x3f,0x03,0xff,0x00,0x7f,0xe0
,0x00,0x00,0xfc,0x03,0xfe,0x00,0x3f,0xe0
,0x00,0x07,0xf0,0x13,0xfc,0x00,0x1f,0xe0
,0x00,0x0f,0xc0,0x79,0xf8,0x08,0x0f,0xe0
,0x00,0x0f,0x01,0xf9,0xf8,0x1c,0x0f,0xc0
,0x00,0x00,0x07,0xf1,0xfc,0x3e,0x1f,0xc0
,0x00,0x00,0x1f,0xc0,0xfe,0x7f,0x3f,0x80
,0x00,0x00,0x7e,0x00,0xff,0xff,0xff,0x80
,0x00,0x00,0xfc,0x00,0x7f,0xff,0xff,0x00
,0x00,0x00,0xf0,0x1f,0x3f,0xff,0xfe,0x00
,0x00,0x00,0x00,0x7f,0x1f,0xff,0xfc,0x00
,0x00,0x00,0x01,0xff,0x8f,0xff,0xf8,0x00
,0x00,0x00,0x03,0xe0,0xe3,0xff,0xe0,0x00
,0x00,0x00,0x01,0x80,0x00,0x7f,0x00,0x00
};
const unsigned char go1_logo [] PROGMEM = {
0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xc0, 0x00, 0x1f, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xe0, 0x00, 0x7f, 0x80, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x00, 0xff, 0xc0,
0x00, 0x00, 0x00, 0x7f, 0xf8, 0x01, 0xff, 0xe0, 0x00, 0x00, 0x00, 0xff, 0xf8, 0x03, 0xff, 0xe0,
0x00, 0x00, 0x01, 0xff, 0xfc, 0x03, 0xff, 0xf0, 0x00, 0x00, 0x01, 0xff, 0xfc, 0x07, 0xff, 0xf0,
0x00, 0x00, 0x03, 0xff, 0xfc, 0x07, 0xff, 0xf8, 0x00, 0x00, 0x03, 0xff, 0xfe, 0x0f, 0xff, 0xf8,
0x00, 0x00, 0x07, 0xff, 0xfe, 0x0f, 0xff, 0xf8, 0x00, 0x00, 0x07, 0xff, 0xfe, 0x1f, 0xff, 0xfc,
0x00, 0x00, 0x07, 0xff, 0xff, 0x1f, 0xff, 0xfc, 0x00, 0x00, 0x0f, 0xff, 0xff, 0x1f, 0xff, 0xfc,
0x00, 0x00, 0x0f, 0xff, 0xff, 0x3f, 0xff, 0xfe, 0x00, 0x00, 0x0f, 0xff, 0xff, 0x3f, 0xff, 0xfe,
0x03, 0xff, 0x8f, 0xf8, 0xff, 0x3f, 0xe3, 0xfe, 0x07, 0xff, 0x9f, 0xf0, 0xff, 0x7f, 0xc1, 0xfe,
0x07, 0xff, 0x9f, 0xe0, 0x7e, 0x7f, 0x80, 0xfe, 0x00, 0x00, 0x1f, 0xc0, 0x3c, 0x7f, 0x00, 0xfe,
0x00, 0x00, 0x1f, 0xc0, 0x30, 0x7f, 0x00, 0xff, 0x00, 0x00, 0x3f, 0xc0, 0x20, 0x7f, 0x00, 0x7f,
0x00, 0x00, 0x3f, 0x80, 0x00, 0xfe, 0x00, 0x7f, 0x00, 0x00, 0x3f, 0x80, 0x00, 0xfe, 0x00, 0x7f,
0x7f, 0xfe, 0x3f, 0x80, 0x00, 0xfe, 0x00, 0x7f, 0xff, 0xfe, 0x3f, 0x00, 0x00, 0xfe, 0x00, 0x3f,
0xff, 0xfe, 0x3f, 0x03, 0xff, 0xfc, 0x00, 0x3f, 0x00, 0x00, 0x3f, 0x07, 0xff, 0xfc, 0x00, 0x3f,
0x00, 0x00, 0x7f, 0x07, 0xff, 0xfc, 0x00, 0x3f, 0x00, 0x00, 0x7f, 0x07, 0xff, 0xfc, 0x00, 0x3f,
0x00, 0x00, 0x7f, 0x07, 0xff, 0xfc, 0x00, 0x3f, 0x00, 0x00, 0x7f, 0x0f, 0xff, 0xfc, 0x00, 0x3f,
0x00, 0xfe, 0x7f, 0x0f, 0xff, 0xfc, 0x00, 0x3f, 0x00, 0xfe, 0x7f, 0x0f, 0xff, 0xfc, 0x00, 0x3f,
0x00, 0xfe, 0x7f, 0x0f, 0xff, 0xfc, 0x00, 0x3f, 0x00, 0x00, 0x7f, 0x0f, 0xff, 0xfc, 0x00, 0x7f,
0x00, 0x00, 0x7f, 0x0f, 0xff, 0xfc, 0x00, 0x7f, 0x00, 0x00, 0x7f, 0x1f, 0xff, 0xfc, 0x00, 0x7f,
0x00, 0x00, 0x7f, 0x1f, 0xff, 0xfc, 0x00, 0x7e, 0x00, 0x00, 0x7f, 0x00, 0x3f, 0xfc, 0x00, 0x7e,
0x00, 0x00, 0x7f, 0x00, 0x3f, 0xfc, 0x00, 0xfe, 0x00, 0x00, 0x7f, 0x00, 0x7f, 0xfc, 0x00, 0xfe,
0x00, 0x00, 0x7f, 0x00, 0x7f, 0xfe, 0x00, 0xfe, 0x00, 0x00, 0x3f, 0x80, 0x7f, 0xfe, 0x01, 0xfe,
0x00, 0x00, 0x3f, 0x80, 0xfe, 0xfe, 0x01, 0xfc, 0x00, 0x00, 0x3f, 0xc0, 0xfe, 0xff, 0x03, 0xfc,
0x00, 0x00, 0x3f, 0xc1, 0xfe, 0xff, 0x03, 0xfc, 0x00, 0x00, 0x3f, 0xe3, 0xfe, 0xff, 0x87, 0xfc,
0x00, 0x00, 0x3f, 0xff, 0xfe, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x3f, 0xff, 0xfc, 0x7f, 0xff, 0xf8,
0x00, 0x00, 0x1f, 0xff, 0xfc, 0x7f, 0xff, 0xf8, 0x00, 0x00, 0x1f, 0xff, 0xfc, 0x7f, 0xff, 0xf8,
0x00, 0x00, 0x1f, 0xff, 0xf8, 0x7f, 0xff, 0xf0, 0x00, 0x00, 0x1f, 0xff, 0xf8, 0x3f, 0xff, 0xf0,
0x00, 0x00, 0x0f, 0xff, 0xf8, 0x3f, 0xff, 0xe0, 0x00, 0x00, 0x0f, 0xff, 0xf0, 0x3f, 0xff, 0xe0,
0x00, 0x00, 0x07, 0xff, 0xf0, 0x1f, 0xff, 0xc0, 0x00, 0x00, 0x07, 0xff, 0xe0, 0x1f, 0xff, 0xc0,
0x00, 0x00, 0x03, 0xff, 0xe0, 0x0f, 0xff, 0x80, 0x00, 0x00, 0x03, 0xff, 0xc0, 0x0f, 0xff, 0x80,
0x00, 0x00, 0x01, 0xff, 0x80, 0x07, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x03, 0xfe, 0x00,
0x00, 0x00, 0x00, 0x7e, 0x00, 0x01, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00
};
const unsigned char welcome_logo [] PROGMEM = {
0xff, 0xfc, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xc0, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80,
0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xf8,
0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x1f, 0xfe, 0x1f,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0x1f, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0x8f, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3e, 0x3f, 0x8f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0xfe, 0x3e, 0x7f, 0x8f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xfe, 0x1e, 0x7f, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xc1, 0x07, 0xff, 0xff, 0x0e, 0x7f, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0x8f, 0xe3, 0xff, 0xf0, 0x07, 0x3e, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0x9f, 0xe3, 0xff, 0xe0, 0x03, 0x80, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
0x1f, 0xf3, 0xff, 0xc1, 0xf0, 0xe0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x1f,
0xe3, 0xff, 0x87, 0xfc, 0x70, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xcf, 0xc1,
0xff, 0x8f, 0x8e, 0x78, 0x7f, 0xfc, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0x00, 0x7f,
0x1e, 0x03, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0x3c, 0x3f, 0x1e,
0xf8, 0x9c, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x3f, 0x1f, 0xfc,
0x5e, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x3f, 0x9f, 0xfc, 0x4e,
0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x7f, 0x8f, 0xfc, 0x0f, 0x83,
0x07, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xc7, 0xf8, 0x0c, 0x83, 0x02,
0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xe0, 0x40, 0x08, 0x83, 0x02, 0x08,
0x20, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0, 0x00, 0x10, 0x83, 0x84, 0x2e, 0x20,
0xd8, 0x26, 0x19, 0xcf, 0x02, 0x60, 0x00, 0xff, 0xfc, 0x0e, 0x00, 0xc5, 0x84, 0x46, 0x61, 0x88,
0x43, 0x18, 0x41, 0x04, 0x60, 0x00, 0xff, 0xff, 0xfe, 0x00, 0xc5, 0x88, 0xc6, 0x61, 0x00, 0x83,
0x1c, 0x71, 0x0c, 0x60, 0x00, 0xff, 0xff, 0xfe, 0x00, 0xc9, 0x88, 0x84, 0x63, 0x01, 0x83, 0x18,
0xe3, 0x08, 0x40, 0x00, 0x3f, 0xff, 0xfe, 0x00, 0xc9, 0x91, 0x88, 0x62, 0x01, 0x83, 0x18, 0xe3,
0x18, 0x8c, 0x00, 0x0f, 0xff, 0xfe, 0x00, 0xc0, 0x91, 0xf0, 0x62, 0x01, 0x82, 0x10, 0xc3, 0x1f,
0x18, 0x0f, 0x83, 0xff, 0xfe, 0x00, 0x70, 0xe1, 0x80, 0x63, 0x01, 0x86, 0x30, 0xc3, 0x18, 0x70,
0x1f, 0xe1, 0xff, 0xfe, 0x00, 0x60, 0xe1, 0x88, 0x63, 0x19, 0x84, 0x30, 0xc3, 0x18, 0xe4, 0x3f,
0xf1, 0xff, 0xfe, 0x00, 0x60, 0xc0, 0xf0, 0x61, 0xe0, 0x98, 0x30, 0x83, 0x8f, 0xe4, 0x3f, 0xf0,
0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc6, 0x3f, 0xf0, 0xff,
0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xe6, 0x1f, 0x70, 0xff, 0xfc,
0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xe3, 0x80, 0xf1, 0xff, 0xf8, 0xf8,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0xf3, 0xe1, 0xff, 0xf8, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xc3, 0xff, 0xfc, 0x70, 0x0f, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x3f, 0x0f, 0xff, 0xfc, 0x00, 0x0f, 0x80, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0f, 0x00, 0x3f, 0xff, 0xff, 0x83, 0xcf, 0x9f, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xe0, 0xe7, 0x87, 0xff, 0xff, 0xff, 0xc7, 0xe7, 0x3f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xc3, 0xf3, 0xc3, 0xff, 0xff, 0xff, 0x8f, 0xf0, 0x7f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xc7, 0xf9, 0xe1, 0xff, 0xff, 0xff, 0x8f, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xc7, 0xf1, 0xe1, 0xff, 0xff, 0xff, 0x87, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xc7, 0xe3, 0xe1, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7,
0xff, 0xe1, 0xff, 0xff, 0xff, 0xe0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xff,
0xc3, 0xff, 0xff, 0xff, 0xf8, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xff, 0x03,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x0f, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x1f, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x81, 0xff, 0xff
};
const unsigned char mahadev_logo [] PROGMEM = {
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7b, 0x0c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf1, 0xf8, 0x19, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x70, 0x3d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x24, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3e, 0x00, 0x7e, 0x1f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x06, 0x00, 0x9f, 0xc0, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x9f, 0xf0, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x01, 0x78, 0x7c, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x60, 0x06, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0xf8, 0x63, 0xf1, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x02, 0x1a, 0x60, 0x0d, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x27, 0xf2, 0x97, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x03, 0xfb, 0xff, 0x9d, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x02, 0x67, 0xff, 0x6f, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x03, 0x07, 0xff, 0xa5, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x01, 0xf9, 0xff, 0xa3, 0x7f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x3c, 0x07, 0xff, 0xb2, 0x7f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x78, 0x7f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xfe, 0x01, 0x40, 0x00, 0xff, 0xff, 0x46, 0x7f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xf8, 0x02, 0x28, 0x01, 0xff, 0xfa, 0x16, 0x7f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xf0, 0x01, 0xc0, 0x00, 0x3f, 0xe0, 0xf6, 0x3f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x1f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x06, 0x0f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x03, 0xfd, 0xfc, 0x07, 0x0f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xc0, 0x04, 0x00, 0x03, 0xfd, 0xfc, 0x07, 0xaf, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xfe, 0x78, 0x01, 0xff, 0xff, 0xfe, 0x07, 0xd7, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0x07, 0xff, 0xff, 0xfc, 0x03, 0xf7, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xdf, 0x78, 0x07, 0xff, 0xff, 0xfd, 0x0b, 0xfe, 0x7f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xcf, 0xf8, 0x03, 0xff, 0xff, 0xfc, 0x8d, 0xef, 0xdf, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0x07, 0xe0, 0x23, 0xff, 0xff, 0xfe, 0x46, 0xf8, 0x0f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x80, 0x03, 0xcc, 0xc1, 0xfd, 0xff, 0xff, 0x81, 0xbf, 0xc3, 0xff, 0xff, 0xff,
0xff, 0xff, 0xf8, 0x00, 0x03, 0x8f, 0x80, 0x7c, 0xff, 0xff, 0xcf, 0x23, 0xff, 0x7f, 0xff, 0xff,
0xff, 0xff, 0xf0, 0x00, 0x01, 0xc3, 0xf0, 0x1c, 0x7c, 0xff, 0xbe, 0x80, 0x3f, 0x9f, 0xff, 0xff,
0xff, 0xff, 0xe0, 0x1e, 0x00, 0x01, 0xef, 0x80, 0x70, 0x01, 0xdf, 0x03, 0xe0, 0xcf, 0xff, 0xff,
0xff, 0xfe, 0x38, 0x00, 0x00, 0x00, 0xd8, 0x58, 0x00, 0x7c, 0x73, 0x0f, 0xff, 0xf0, 0x7f, 0xff,
0xff, 0xe6, 0x0f, 0x80, 0x00, 0x00, 0x7e, 0x07, 0xfc, 0x03, 0x8e, 0x3f, 0xc0, 0x1f, 0xfc, 0xff,
0xff, 0x47, 0xfc, 0x00, 0x00, 0x00, 0x1d, 0xc0, 0x00, 0x0e, 0x38, 0x01, 0xff, 0xff, 0xff, 0xff,
0xfd, 0xff, 0xe1, 0xf0, 0x00, 0x00, 0x03, 0xf4, 0x00, 0x63, 0x80, 0x3f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xbf, 0x80, 0x3f, 0xff, 0xf8, 0x78, 0xff, 0x0c, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xf0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
};
const unsigned char go_logo [] 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, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x1c, 0x00, 0x01, 0xff, 0xfe, 0x1f, 0xff, 0xf8, 0xfe, 0x01, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x7f, 0x00, 0x03, 0xff, 0xff, 0x7f, 0xff, 0xfe, 0xc7, 0x0f, 0xff, 0xf0, 0x00, 0x00,
0x00, 0x00, 0x63, 0x00, 0x06, 0x00, 0x01, 0xe0, 0x00, 0x06, 0xc3, 0x1c, 0x00, 0x30, 0x00, 0x00,
0x00, 0x00, 0x63, 0x00, 0x06, 0x00, 0x03, 0x70, 0x80, 0x0e, 0xe3, 0x30, 0x7c, 0x30, 0x00, 0x00,
0x00, 0x00, 0x63, 0x00, 0x06, 0x3f, 0xfe, 0x3f, 0xc7, 0xfc, 0xe7, 0x71, 0xff, 0xf0, 0x00, 0x00,
0x00, 0x00, 0x63, 0x00, 0x06, 0x30, 0x00, 0x00, 0xc7, 0x01, 0xce, 0x63, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x63, 0x00, 0x06, 0x30, 0x00, 0x00, 0xc7, 0x00, 0xfc, 0x63, 0xc0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x63, 0x00, 0x06, 0x3f, 0xfe, 0x00, 0xc6, 0x00, 0x70, 0x70, 0xff, 0x00, 0x00, 0x00,
0x00, 0x00, 0x63, 0x00, 0x06, 0x00, 0x06, 0x00, 0xc7, 0x00, 0x00, 0x38, 0x07, 0xc0, 0x00, 0x00,
0x00, 0x00, 0x63, 0x00, 0x06, 0x00, 0x07, 0x00, 0xc7, 0x00, 0x00, 0x1f, 0x00, 0x70, 0x00, 0x00,
0x00, 0x00, 0x63, 0x00, 0x06, 0x3f, 0xfe, 0x00, 0xc7, 0x00, 0x00, 0x07, 0xf8, 0x38, 0x00, 0x00,
0x00, 0x00, 0x63, 0x00, 0x06, 0x3f, 0xf8, 0x00, 0xc7, 0x00, 0x00, 0x00, 0x3f, 0x18, 0x00, 0x00,
0x00, 0x00, 0x63, 0x00, 0x06, 0x30, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x18, 0x03, 0x18, 0x00, 0x00,
0x00, 0x00, 0x63, 0xff, 0xc6, 0x3f, 0xfe, 0x00, 0xc7, 0x00, 0x00, 0x7f, 0xff, 0x18, 0x00, 0x00,
0x00, 0x00, 0x61, 0xff, 0xe6, 0x1f, 0xff, 0x00, 0xc7, 0x00, 0x00, 0x63, 0xfc, 0x38, 0x00, 0x00,
0x00, 0x00, 0x60, 0x00, 0x36, 0x00, 0x03, 0x80, 0xc7, 0x00, 0x00, 0x60, 0x00, 0x70, 0x00, 0x00,
0x00, 0x00, 0x7c, 0x00, 0x67, 0x00, 0x07, 0x00, 0xe6, 0x00, 0x00, 0x3f, 0x03, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x1f, 0xff, 0xc1, 0xff, 0xfe, 0x00, 0x7c, 0x00, 0x00, 0x0f, 0xff, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x0c, 0x00, 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x1f, 0x80, 0x00, 0x0f, 0xc0, 0x00, 0x38, 0x00, 0x0e, 0x00, 0x01, 0xc0, 0x00, 0x00,
0x00, 0x01, 0xe0, 0xf8, 0x00, 0xf8, 0x7c, 0x00, 0x1e, 0x00, 0x07, 0x80, 0x01, 0xe0, 0x00, 0x00,
0x00, 0x07, 0x00, 0x06, 0x03, 0x80, 0x07, 0x00, 0x1b, 0x80, 0x02, 0xe0, 0x00, 0xf8, 0x00, 0x00,
0x00, 0x0c, 0x00, 0x03, 0x06, 0x00, 0x01, 0x80, 0x0c, 0xc0, 0x03, 0x30, 0x00, 0xce, 0x00, 0x00,
0x00, 0x18, 0x7f, 0xe3, 0x0c, 0x1f, 0xf0, 0xc0, 0x0c, 0x70, 0x01, 0x0c, 0x00, 0x63, 0x00, 0x00,
0x00, 0x30, 0xc0, 0x3e, 0x18, 0x60, 0x18, 0x60, 0x06, 0x1c, 0x01, 0x87, 0x00, 0x61, 0xc0, 0x00,
0x00, 0x21, 0x80, 0x00, 0x10, 0xc0, 0x0c, 0x20, 0x06, 0x06, 0x00, 0x81, 0xc0, 0x30, 0x70, 0x00,
0x00, 0x63, 0x07, 0xfc, 0x10, 0x80, 0x06, 0x30, 0x03, 0x03, 0x80, 0xc0, 0x60, 0x30, 0x1c, 0x00,
0x00, 0x63, 0x08, 0x03, 0x30, 0x80, 0x06, 0x30, 0x03, 0x00, 0xe0, 0x60, 0x38, 0x18, 0x06, 0x00,
0x00, 0x63, 0x18, 0x03, 0x31, 0x80, 0x06, 0x30, 0x01, 0x80, 0x30, 0x60, 0x0c, 0x18, 0x03, 0x00,
0x00, 0x63, 0x0f, 0xe3, 0x30, 0x80, 0x06, 0x30, 0x03, 0x00, 0xe0, 0x40, 0x38, 0x18, 0x0e, 0x00,
0x00, 0x61, 0x03, 0xe3, 0x10, 0xc0, 0x04, 0x30, 0x03, 0x03, 0x80, 0xc0, 0xe0, 0x30, 0x38, 0x00,
0x00, 0x21, 0xc0, 0x23, 0x18, 0x60, 0x0c, 0x60, 0x06, 0x0e, 0x01, 0x83, 0x80, 0x20, 0x60, 0x00,
0x00, 0x30, 0x70, 0xe3, 0x08, 0x38, 0x70, 0x60, 0x06, 0x38, 0x01, 0x8e, 0x00, 0x61, 0x80, 0x00,
0x00, 0x18, 0x0f, 0x83, 0x06, 0x07, 0xc0, 0xc0, 0x0c, 0xe0, 0x03, 0x18, 0x00, 0x47, 0x00, 0x00,
0x00, 0x0e, 0x00, 0x03, 0x03, 0x00, 0x03, 0x80, 0x09, 0x80, 0x03, 0x60, 0x00, 0xdc, 0x00, 0x00,
0x00, 0x03, 0x80, 0x1c, 0x01, 0xe0, 0x0e, 0x00, 0x1e, 0x00, 0x07, 0xc0, 0x01, 0xf0, 0x00, 0x00,
0x00, 0x00, 0x7f, 0xe0, 0x00, 0x3f, 0xf0, 0x00, 0x3c, 0x00, 0x07, 0x00, 0x01, 0xc0, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x0c, 0x00, 0x01, 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, 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
};
// ----------- Draw Bitmap ---------------
void showBitmap(const unsigned char *img, int w, int h) {
display.clearDisplay();
display.drawBitmap((128 - w) / 2, (64 - h) / 2, img, w, h, WHITE);
display.display();
}
// ------------------ LEDs ------------------
void ledsOff() {
fill_solid(leds, NUM_LEDS, CRGB::Black);
FastLED.show();
}
void matchEffect() {
fill_solid(leds, NUM_LEDS, CRGB::Green);
FastLED.show();
}
void mismatchEffect() {
fill_solid(leds, NUM_LEDS, CRGB::Red);
FastLED.show();
}
void scanEffect() {
fill_solid(leds, NUM_LEDS, CRGB::Blue);
FastLED.show();
}
void powerEffect() {
fill_solid(leds, NUM_LEDS, CRGB::Cyan);
FastLED.show();
}
void rainbowEffect
() {
static uint8_t hue = 0;
fill_rainbow(leds, NUM_LEDS, hue, 7);
FastLED.show();
hue++;
}
bool rainbowActive = false;
void rainbowStep() {
static uint8_t hue = 0;
fill_rainbow(leds, NUM_LEDS, hue, 3);
FastLED.show();
hue += 3; // smooth + fast
}
void touchEffect() {
// MAGENTA glow stable
for (int i = 0; i < NUM_LEDS; i++) {
leds[i] = CRGB(255, 0, 255); // magenta
}
FastLED.show();
}
// ---------------- ERROR LOGO FUNCTION ----------------
void showError(bool relayOff) {
// RED LED
fill_solid(leds, NUM_LEDS, CRGB::Red);
FastLED.show();
if (relayOff) {
// Relay OFF → show error logo briefly
showBitmap(error_logo, 64, 64);
delay(1000); // show logo 1 sec
ledsOff();
display.clearDisplay();
display.display();
} else {
// Relay ON → only RED blink
delay(300);
ledsOff();
}
}
// ------------------ SETUP ------------------
void setup() {
pinMode(RELAY, OUTPUT);
digitalWrite(RELAY, LOW);
Serial.begin(9600);
// OLED start
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
while (1);
}
display.clearDisplay();
display.display();
// WS2812
FastLED.addLeds<NEOPIXEL, LED_PIN>(leds, NUM_LEDS);
//ledsOff();
powerEffect();
delay(200);
// STARTUP MAGENTA TOUCH LOGO
showBitmap(touch_logo, 64, 64);
// Fingerprint
finger.begin(57600);
if (!finger.verifyPassword()) {
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println("FINGER NOT FOUND!");
display.display();
while (1);
}
}
// -------------- LOOP ------------------
void loop() {
// ---- RAINBOW RUNS WHEN RELAY IS ON ------
if (digitalRead(RELAY) == HIGH && rainbowActive) {
rainbowStep(); // run rainbow smoothly
}
// --------- CHECK FOR FINGER ------------
int p = finger.getImage();
if (p != FINGERPRINT_OK) return;
p = finger.image2Tz();
if (p != FINGERPRINT_OK) return;
int result = finger.fingerSearch();
// ---------- FINGER MISMATCH -----------
if (result != FINGERPRINT_OK) {
if (digitalRead(RELAY) == LOW && !firstRelayOnDone) {
// First relay OFF mismatch → show error logo + RED LED
showError(true);
} else if (digitalRead(RELAY) == HIGH) {
// Relay ON mismatch → only RED blink
showError(false);
} else {
// Relay OFF + firstRelayOnDone == true → RED glow briefly, no logo
fill_solid(leds, NUM_LEDS, CRGB::Red);
FastLED.show();
delay(300);
ledsOff();
display.clearDisplay();
display.display();
}
return; // exit loop
}
// --------- FINGER MATCH ----------------
relayState = !digitalRead(RELAY); // toggle relay
digitalWrite(RELAY, relayState);
// ---------------- RELAY OFF ----------------
if (relayState == LOW) {
ledsOff();
rainbowActive = false;
display.clearDisplay();
display.display();
return;
}
// --------- FIRST RELAY ON ----------------
if (!firstRelayOnDone) {
// --- TOUCH LOGO + MAGENTA ---
touchEffect();
showBitmap(touch_logo, 64, 64);
delay(300);
// --- SCAN LED + LOGO ---
scanEffect();
showBitmap(scan_logo, 64, 64);
delay(300);
// --- MATCH GREEN LED + LOGO ---
matchEffect();
showBitmap(match_logo, 64, 64);
delay(800);
// --- GO LOGO ---
showBitmap(go_logo, 125, 52);
delay(1000);
// --- WELCOME LOGO + TEXT ---
display.clearDisplay();
display.drawBitmap(5, 2, welcome_logo, 120, 50, WHITE);
display.setTextSize(1.9);
display.setTextColor(WHITE);
display.setCursor(30, 55);
display.println("NISITH MANNA");
display.display();
delay(1200);
// --- MAHADEV LOGO + TEXT ---
display.clearDisplay();
display.drawBitmap(0, 0, mahadev_logo, 128, 50, WHITE);
display.setTextSize(1.5);
display.setCursor(20, 55);
display.println("HAR HAR MAHADEV");
display.display();
delay(1500);
// --- Clear Display ---
display.clearDisplay();
display.display();
firstRelayOnDone = true;
// --- Start rainbow and turn off green LED ---
rainbowActive = true;
ledsOff();
} else {
// ---------- SECOND RELAY ON ----------
scanEffect();
matchEffect();
rainbowActive = true; // rainbow running
}
}
Battery Oled Sketch
// dc 42v measure + battery 0 to 100 percent show + ws2812 led battery percentage show
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Fonts/FreeMonoBoldOblique24pt7b.h>
#include <FastLED.h>
#define NUM_LEDS 5
#define LED_PIN 4
CRGB leds[NUM_LEDS];
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET 4
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
const int currentSensor = A0;
const int voltageSensor = A1;
float vOUT = 0.0;
float vIN = 0.0;
float R1 = 10000.0; //100k
float R2 = 1980.0; //10k
//float R1 = 100000.0; // 100 kΩ
//float R2 = 10000.0; // 10 kΩ
float Vdata = 0;
float V,I,I1;
float Cdata;
float value;
// Blink timer
unsigned long oledLastBlink = 0;
unsigned long ledLastBlink = 0;
const unsigned long oledBlinkInterval = 500;
const unsigned long ledBlinkInterval = 500;
bool oledBlinkState = false;
bool ledBlinkState = false;
bool blinkState = false;
// battery charge logo 30x40px
const unsigned char charg_0[] 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, 0x1f, 0xff, 0x80, 0x00, 0x1f, 0xff, 0x00,
0x00, 0x3f, 0xfe, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x7f, 0xf8, 0x00, 0x00, 0x7f, 0xf0, 0x00,
0x00, 0xff, 0xe0, 0x00, 0x00, 0xff, 0xe0, 0x00, 0x01, 0xff, 0xc0, 0x00, 0x01, 0xff, 0x80, 0x00,
0x03, 0xff, 0x00, 0x00, 0x03, 0xff, 0xfc, 0x00, 0x07, 0xff, 0xfc, 0x00, 0x07, 0xff, 0xf8, 0x00,
0x00, 0x1f, 0xf0, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x3f, 0xc0, 0x00, 0x00, 0x3f, 0x80, 0x00,
0x00, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00,
0x00, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x01, 0xe0, 0x00, 0x00, 0x01, 0xc0, 0x00, 0x00,
0x01, 0x80, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
// --- Battery Icons (50x62 px) ---
const unsigned char batt_0[] PROGMEM = {
0x00, 0x07, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x07,
0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x07, 0xc0, 0x00,
0xf8, 0x00, 0x00, 0xff, 0xff, 0xc0, 0x00, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xc0, 0x00, 0xff, 0xff,
0xc0, 0xff, 0xff, 0xc0, 0x00, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xc0, 0x00, 0xff, 0xff, 0xc0, 0xf8,
0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0xf8, 0x00, 0x00,
0x00, 0x00, 0x07, 0xc0, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0xf8, 0x00, 0x00, 0x00, 0x00,
0x07, 0xc0, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0,
0xf8, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x07, 0xc0, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0xf8, 0x00, 0x00, 0x00,
0x00, 0x07, 0xc0, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x07,
0xc0, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0xf8,
0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0xf8, 0x00, 0x00,
0x00, 0x00, 0x07, 0xc0, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0xf8, 0x00, 0x00, 0x00, 0x00,
0x07, 0xc0, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0,
0xf8, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x07, 0xc0, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0xf8, 0x00, 0x00, 0x00,
0x00, 0x07, 0xc0, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x07,
0xc0, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0xf8,
0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0xf8, 0x00, 0x00,
0x00, 0x00, 0x07, 0xc0, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0xf8, 0x00, 0x00, 0x00, 0x00,
0x07, 0xc0, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0,
0xf8, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x07, 0xc0, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0xf8, 0x00, 0x00, 0x00,
0x00, 0x07, 0xc0, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x07,
0xc0, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0xf8,
0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xc0
};
const unsigned char batt_5[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x03,
0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00,
0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00, 0xf0, 0x00, 0x00, 0x7f, 0xff, 0xe0, 0x00, 0xff, 0xff,
0x80, 0x7f, 0xff, 0xe0, 0x00, 0xff, 0xff, 0x80, 0x7f, 0xff, 0xe0, 0x00, 0xff, 0xff, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00,
0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00,
0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80,
0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00,
0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00,
0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07,
0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00,
0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00,
0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80,
0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00,
0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00,
0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07,
0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00,
0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00,
0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80,
0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00,
0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00,
0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07,
0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x7f, 0xff, 0xff,
0xff, 0xff, 0xff, 0x80, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00
};
const unsigned char batt_10[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x03,
0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00,
0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00, 0xf0, 0x00, 0x00, 0x7f, 0xff, 0xe0, 0x00, 0xff, 0xff,
0x80, 0x7f, 0xff, 0xe0, 0x00, 0xff, 0xff, 0x80, 0x7f, 0xff, 0xe0, 0x00, 0xff, 0xff, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00,
0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00,
0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80,
0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00,
0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00,
0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07,
0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00,
0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00,
0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80,
0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00,
0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00,
0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07,
0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00,
0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00,
0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80,
0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00,
0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff,
0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07,
0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x7f, 0xff, 0xff,
0xff, 0xff, 0xff, 0x80, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00
};
const unsigned char batt_20[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x03,
0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00,
0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00, 0xf0, 0x00, 0x00, 0x7f, 0xff, 0xe0, 0x00, 0xff, 0xff,
0x80, 0x7f, 0xff, 0xe0, 0x00, 0xff, 0xff, 0x80, 0x7f, 0xff, 0xe0, 0x00, 0xff, 0xff, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00,
0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00,
0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80,
0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00,
0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00,
0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07,
0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00,
0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00,
0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80,
0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00,
0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00,
0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07,
0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff,
0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff,
0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80,
0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00,
0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff,
0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07,
0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x7f, 0xff, 0xff,
0xff, 0xff, 0xff, 0x80, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00
};
const unsigned char batt_30[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x03,
0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00,
0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00, 0xf0, 0x00, 0x00, 0x7f, 0xff, 0xe0, 0x00, 0xff, 0xff,
0x80, 0x7f, 0xff, 0xe0, 0x00, 0xff, 0xff, 0x80, 0x7f, 0xff, 0xe0, 0x00, 0xff, 0xff, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00,
0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00,
0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80,
0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00,
0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00,
0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07,
0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00,
0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00,
0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80,
0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00,
0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00,
0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07,
0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff,
0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff,
0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80,
0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00,
0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff,
0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07,
0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x7f, 0xff, 0xff,
0xff, 0xff, 0xff, 0x80, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00
};
const unsigned char batt_40[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x03,
0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00,
0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00, 0xf0, 0x00, 0x00, 0x7f, 0xff, 0xe0, 0x00, 0xff, 0xff,
0x80, 0x7f, 0xff, 0xe0, 0x00, 0xff, 0xff, 0x80, 0x7f, 0xff, 0xe0, 0x00, 0xff, 0xff, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00,
0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00,
0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80,
0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00,
0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00,
0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07,
0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00,
0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00,
0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80,
0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00,
0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff,
0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07,
0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff,
0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff,
0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80,
0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00,
0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff,
0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07,
0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x7f, 0xff, 0xff,
0xff, 0xff, 0xff, 0x80, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00
};
const unsigned char batt_50[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x03,
0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00,
0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00, 0xf0, 0x00, 0x00, 0x7f, 0xff, 0xe0, 0x00, 0xff, 0xff,
0x80, 0x7f, 0xff, 0xe0, 0x00, 0xff, 0xff, 0x80, 0x7f, 0xff, 0xe0, 0x00, 0xff, 0xff, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00,
0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00,
0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80,
0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00,
0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00,
0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07,
0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00,
0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00,
0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80,
0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00,
0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff,
0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07,
0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff,
0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff,
0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80,
0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00,
0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff,
0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07,
0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x7f, 0xff, 0xff,
0xff, 0xff, 0xff, 0x80, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00
};
const unsigned char batt_60[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x03,
0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00,
0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00, 0xf0, 0x00, 0x00, 0x7f, 0xff, 0xe0, 0x00, 0xff, 0xff,
0x80, 0x7f, 0xff, 0xe0, 0x00, 0xff, 0xff, 0x80, 0x7f, 0xff, 0xe0, 0x00, 0xff, 0xff, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00,
0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00,
0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80,
0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00,
0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00,
0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07,
0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff,
0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff,
0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80,
0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00,
0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff,
0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07,
0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff,
0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff,
0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80,
0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00,
0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff,
0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07,
0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x7f, 0xff, 0xff,
0xff, 0xff, 0xff, 0x80, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00
};
const unsigned char batt_70[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x03,
0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00,
0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00, 0xf0, 0x00, 0x00, 0x7f, 0xff, 0xe0, 0x00, 0xff, 0xff,
0x80, 0x7f, 0xff, 0xe0, 0x00, 0xff, 0xff, 0x80, 0x7f, 0xff, 0xe0, 0x00, 0xff, 0xff, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00,
0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00,
0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80,
0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00,
0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00,
0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07,
0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff,
0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff,
0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80,
0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00,
0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff,
0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07,
0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff,
0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff,
0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80,
0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00,
0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff,
0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07,
0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x7f, 0xff, 0xff,
0xff, 0xff, 0xff, 0x80, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00
};
const unsigned char batt_80[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x03,
0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00,
0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00, 0xf0, 0x00, 0x00, 0x7f, 0xff, 0xe0, 0x00, 0xff, 0xff,
0x80, 0x7f, 0xff, 0xe0, 0x00, 0xff, 0xff, 0x80, 0x7f, 0xff, 0xe0, 0x00, 0xff, 0xff, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00,
0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00,
0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80,
0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00,
0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff,
0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07,
0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff,
0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff,
0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80,
0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00,
0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff,
0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07,
0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff,
0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff,
0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80,
0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00,
0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff,
0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07,
0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x7f, 0xff, 0xff,
0xff, 0xff, 0xff, 0x80, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00
};
const unsigned char batt_90[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x03,
0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00,
0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00, 0xf0, 0x00, 0x00, 0x7f, 0xff, 0xe0, 0x00, 0xff, 0xff,
0x80, 0x7f, 0xff, 0xe0, 0x00, 0xff, 0xff, 0x80, 0x7f, 0xff, 0xe0, 0x00, 0xff, 0xff, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00,
0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00,
0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80,
0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00,
0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff,
0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07,
0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff,
0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff,
0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80,
0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00,
0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff,
0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07,
0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff,
0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff,
0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80,
0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00,
0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff,
0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07,
0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x7f, 0xff, 0xff,
0xff, 0xff, 0xff, 0x80, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00
};
const unsigned char batt_100[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x03,
0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00,
0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00, 0xf0, 0x00, 0x00, 0x7f, 0xff, 0xe0, 0x00, 0xff, 0xff,
0x80, 0x7f, 0xff, 0xe0, 0x00, 0xff, 0xff, 0x80, 0x7f, 0xff, 0xe0, 0x00, 0xff, 0xff, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff,
0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff,
0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80,
0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00,
0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff,
0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07,
0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff,
0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff,
0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80,
0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00,
0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff,
0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07,
0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff,
0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff,
0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80,
0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00,
0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff,
0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07,
0x80, 0x78, 0x3f, 0xff, 0xff, 0xff, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78,
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x78, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x7f, 0xff, 0xff,
0xff, 0xff, 0xff, 0x80, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00
};
void setup() {
Serial.begin(9600);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS);
FastLED.setBrightness(55);
FastLED.clear();
FastLED.show();
}
void loop() {
// Voltage & Ampere divider code
float vIN = 0.0;
for(int i = 0; i < 300; i++) {
Cdata = Cdata + analogRead(currentSensor);
Vdata = Vdata + analogRead(voltageSensor);
delay(1);
}
Cdata=Cdata/300;
V=(Cdata/1023.0)*5000;
I=((V - 2500)/ 96);
Vdata=Vdata/300;
vOUT = (Vdata * 7.5) / 1023.0;
vIN = (vOUT / (R2/(R1+R2)));
value = (I * vIN); // moved here
// Convert to percentage (for 12S Li-ion: 10V = 0%, 42.0V = 100%)
float minVolt = 10.0;
float maxVolt = 42.0;
int percent = map((int)(vIN * 100), 1000, 4200, 0, 100);
percent = constrain(percent, 0, 100);
display.clearDisplay();
// ==== Non-blocking blink timers ====
if (millis() - oledLastBlink >= oledBlinkInterval) {
oledLastBlink = millis();
oledBlinkState = !oledBlinkState;
}
if (millis() - ledLastBlink >= ledBlinkInterval) {
ledLastBlink = millis();
ledBlinkState = !ledBlinkState;
}
// Show battery icon by every% steps
if (percent <= 10) {
blinkState = !blinkState;
if (blinkState)
display.drawBitmap(12, 12, charg_0, 30, 40, WHITE);
display.drawBitmap(1, 0, batt_0, 50, 62, WHITE);
} else if (percent <= 5) {
display.drawBitmap(1, 0, batt_5, 50, 62, WHITE);
} else if (percent <= 10) {
display.drawBitmap(1, 0, batt_10, 50, 62, WHITE);
} else if (percent <= 20) {
display.drawBitmap(1, 0, batt_20, 50, 62, WHITE);
} else if (percent <= 30) {
display.drawBitmap(1, 0, batt_30, 50, 62, WHITE);
} else if (percent <= 40) {
display.drawBitmap(1, 0, batt_40, 50, 62, WHITE);
} else if (percent <= 50) {
display.drawBitmap(1, 0, batt_50, 50, 62, WHITE);
} else if (percent <= 60) {
display.drawBitmap(1, 0, batt_60, 50, 62, WHITE);
} else if (percent <= 70) {
display.drawBitmap(1, 0, batt_70, 50, 62, WHITE);
} else if (percent <= 80) {
display.drawBitmap(1, 0, batt_80, 50, 62, WHITE);
} else if (percent <= 90) {
display.drawBitmap(1, 0, batt_90, 50, 62, WHITE);
} else {
display.drawBitmap(1, 0, batt_100, 50, 62, WHITE);
}
// ===== WS2812 LED BATTERY INDICATOR =====
FastLED.clear();
CRGB red = CRGB::Red;
CRGB orange = CRGB::Magenta;
CRGB cyan = CRGB::Cyan;
CRGB yellow = CRGB::Yellow;
CRGB green = CRGB::Green;
if (percent >= 100) {
leds[0] = red;
leds[1] = orange;
leds[2] = cyan;
leds[3] = yellow;
leds[4] = green;
} else if (percent >= 80) {
leds[0] = red;
leds[1] = orange;
leds[2] = cyan;
leds[3] = yellow;
leds[4] = ledBlinkState ? green : CRGB::Black;
} else if (percent >= 60) {
leds[0] = red;
leds[1] = orange;
leds[2] = cyan;
leds[3] = ledBlinkState ? yellow : CRGB::Black;
} else if (percent >= 40) {
leds[0] = red;
leds[1] = orange;
leds[2] = ledBlinkState ? cyan : CRGB::Black;
} else if (percent >= 20) {
leds[0] = red;
leds[1] = ledBlinkState ? orange : CRGB::Black;
} else if (percent >= 10) {
leds[0] = ledBlinkState ? red : CRGB::Black;
} else {
leds[0] = ledBlinkState ? red : CRGB::Black;
}
FastLED.show();
//Draw line code
display.drawLine(128,8,55,8, WHITE);
display.display();
//Text code
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(55, 0);
display.println("Energy Meter");
// Amps code
display.setTextColor(WHITE);
display.setTextSize(1);
display.setCursor(49,35);
display.print(" Amps:");
display.setCursor(92,33);
display.setTextSize(2);
if (I<0) {display.println("1");
}else {display.println(I,0);}
display.setTextSize(1);
display.setCursor(120,40);
display.println("A");
display.display();
// Volt code
display.setTextSize(1);
display.setCursor(55,19);
display.print("Volts:");
display.setCursor(92,15);
display.setTextSize(2);
display.println(vIN,0);
display.setTextSize(1);
display.setCursor(120,23);
display.println("V");
display.display();
// Show % number
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(52, 50);
display.print(percent);
display.print("%");
display.setTextSize(1);
display.setCursor(102,55);
display.print("Batt");
display.display();
//Resetting values
Cdata=0;
I=0;
V=0;
Vdata=0;
vIN=0;
value;
}

