Skip to content

Instantly share code, notes, and snippets.

@tomjuggler
Created December 14, 2020 11:45
Show Gist options
  • Save tomjuggler/5968fe77284cb43e64715fcafaeb0e44 to your computer and use it in GitHub Desktop.
Save tomjuggler/5968fe77284cb43e64715fcafaeb0e44 to your computer and use it in GitHub Desktop.
Example 36px Smart Poi Nano version 1 - with millis() timer
// Most of this code is the hard work of Tom Hastings www.bigtop.co.za //
// other credits here! Many thanks to .....//
volatile unsigned long millisecs = 0;
unsigned long seconds = 0;
volatile int variable = 0;
#include <avr/io.h>
#include <avr/interrupt.h>
//#include "FastSPI_LED2.h"
#include "FastLED.h"
//FastLED.h working now!
//#define BRIGHTNESS 20 //brightness done in code now
//
//////////////////////Colour Pallette Code:///////////////
boolean upDown = true;
#define BRIGHTNESS 200
#define UPDATES_PER_SECOND 30000
CRGBPalette16 currentPalette;
TBlendType currentBlending;
extern CRGBPalette16 myRedWhiteBluePalette;
extern const TProgmemPalette16 myRedWhiteBluePalette_p PROGMEM;
//////////////////end Colour Pallette Code//////////////////////////////
#include <avr/pgmspace.h>
#define NUM_LEDS 37
CRGB leds[NUM_LEDS];
#define PIN 6
//eeprom stuff:
#include <EEPROM.h>
byte eeprom_option;
byte eeprom_address = 0;
//text variables
byte mask = 1;
int z = 0;
//flash
//#include <Flash.h>
struct dataRGB { byte r;
byte g;
byte b; };
struct pattern { byte numLeds;
byte numFrames;
PROGMEM const prog_uchar *patData; };
struct pattern2 { byte numLeds;
byte numFrames;};
PROGMEM const prog_uchar message1Data[] =
{63, 63, 31, 31, 22, 9, 0, 0, -112, -3, -4, -4, -40, 68, 64, -92, -64, -32, -64, -60, -92, 96, 100, -8, -3, -4, -3, -111, 0, 0, 5, 22, 31, 31, 31, 63,
18, 63, 63, 63, 63, 18, 4, 0, 0, -112, -3, -3, -7, -43, 100, -128, -60, -64, -96, -92, -128, 100, -11, -3, -3, -3, 112, 0, 0, 4, 18, 95, 63, 63, 59, 22,
4, 18, 59, 63, 63, 63, 18, 4, 0, 32, -112, -3, -3, -3, -44, 96, -128, -60, -96, 96, 96, -44, -3, -3, -3, 112, 4, 0, 4, 17, 63, 63, 91, 91, 18, 5,
0, 8, 18, 59, 31, 63, 63, 18, 4, 0, 36, -112, -3, -3, -7, -44, 96, 96, 96, 100, -44, -3, -3, -35, 112, 0, 0, 4, 49, 95, 63, 63, 91, 50, 5, 0,
0, 0, 5, 18, 63, 63, 63, 63, 14, 4, 0, 4, -112, -3, -3, -3, -48, 68, 100, -44, -3, -4, -3, -112, 0, 0, 4, 17, 63, 63, 63, 63, 46, 5, 0, 0,
1, 0, 0, 5, 18, 59, 63, 31, 95, 18, 4, 0, 0, -112, -3, -3, -3, -40, -76, -3, -3, -3, 112, 0, 0, 4, 18, 95, 63, 27, 63, 18, 5, 0, 0, 1,
2, 2, 1, 0, 0, 50, 95, 63, 31, 63, 18, 4, 0, 0, -112, -3, -4, -4, -4, -4, -3, -112, 0, 0, 4, 50, 63, 31, 63, 63, 50, 5, 1, 1, 1, 2,
3, 2, 1, 1, 0, 0, 18, 95, 31, 31, 63, 18, 0, 0, 0, -80, -3, -4, -4, -3, -112, 0, 0, 4, 50, 95, 63, 63, 59, 18, 5, 1, 1, 1, 2, 2,
3, 3, 2, 2, 1, 0, 4, 50, 95, 31, 63, 63, 18, 4, 0, 0, -80, -3, -3, -112, 0, 0, 4, 50, 95, 63, 63, 59, 50, 5, 0, 1, 2, 2, 3, 3,
3, 3, 3, 2, 2, 1, 0, 4, 18, 95, 63, 31, 63, 18, 4, 0, 36, -112, 108, 4, 0, 4, 18, 95, 31, 63, 91, 50, 4, 0, 1, 1, 2, 3, 3, 3,
3, 3, 3, 3, 2, 2, 1, 0, 4, 50, 59, 31, 63, 63, 18, 4, 0, 0, 0, 0, 4, 18, 63, 31, 63, 59, 50, 4, 0, 1, 2, 2, 3, 3, 3, 3,
2, 2, 3, 3, 3, 2, 2, 1, 0, 4, 18, 63, 31, 63, 63, 18, 4, 0, 0, 4, 54, 63, 31, 31, 63, 18, 4, 0, 1, 2, 2, 3, 3, 3, 3, 3,
34, 2, 2, 3, 3, 3, 2, 2, 1, 0, 5, 50, 59, 63, 63, 63, 17, 8, 9, 18, 63, 63, 31, 63, 18, 5, 0, 1, 2, 2, 3, 3, 3, 2, 2, 34,
-121, 66, 34, 2, 3, 3, 3, 2, 2, 1, 0, 5, 18, 59, 63, 63, 95, 18, 22, 95, 63, 63, 63, 18, 4, 0, 1, 2, 2, 3, 3, 3, 3, 34, 66, -121,
-57, -93, 66, 34, 2, 3, 3, 3, 2, 2, 1, 0, 4, 50, 91, 63, 63, 63, 31, 31, 63, 95, 50, 4, 0, 1, 2, 3, 3, 3, 3, 2, 34, 66, -125, -89,
-29, -61, -89, 66, 2, 2, 3, 3, 3, 2, 1, 0, 0, 4, 18, 63, 31, 31, 31, 31, 63, 18, 0, 0, 0, 1, 2, 3, 3, 3, 3, 2, 66, -122, -57, -29,
-29, -29, -89, 98, 34, 2, 3, 3, 3, 3, 1, 1, 0, 0, 9, 59, 31, 31, 31, 31, 59, 9, 0, 0, 1, 2, 3, 3, 3, 3, 2, 2, 103, -89, -61, -29,
-29, -61, -93, 66, 2, 3, 3, 3, 3, 2, 1, 0, 0, 4, 18, 63, 31, 31, 31, 31, 95, 18, 0, 0, 1, 2, 2, 3, 3, 3, 3, 2, 66, -125, -61, -29,
-57, -93, 98, 34, 2, 3, 3, 3, 2, 2, 1, 0, 4, 18, 63, 63, 63, 63, 63, 63, 27, 95, 18, 4, 0, 0, 1, 2, 3, 3, 3, 3, 34, 98, -93, -57,
-89, 98, 34, 2, 3, 3, 3, 2, 2, 1, 0, 5, 50, 91, 63, 63, 59, 18, 22, 59, 63, 63, 95, 18, 4, 0, 0, 1, 3, 3, 3, 3, 2, 34, 98, -121,
34, 34, 3, 3, 3, 3, 2, 2, 1, 0, 5, 18, 63, 63, 59, 95, 17, 4, 5, 18, 95, 59, 63, 63, 18, 9, 0, 1, 2, 2, 3, 3, 3, 2, 2, 34,
2, 3, 3, 3, 3, 2, 1, 1, 0, 5, 18, 63, 63, 63, 59, 50, 4, 0, 0, 4, 13, 95, 63, 63, 63, 18, 5, 0, 1, 2, 2, 3, 3, 3, 2, 2,
3, 3, 3, 3, 2, 1, 1, 0, 5, 18, 63, 63, 63, 59, 18, 0, 0, 0, 4, 0, 0, 50, 59, 63, 63, 27, 18, 5, 0, 1, 2, 2, 3, 3, 3, 3,
3, 3, 3, 2, 1, 1, 0, 5, 50, 59, 63, 31, 63, 18, 4, 0, 36, -112, -112, 0, 0, 4, 50, 63, 31, 63, 63, 18, 4, 0, 1, 2, 3, 3, 3, 3,
3, 3, 2, 1, 0, 0, 5, 50, 63, 63, 63, 95, 17, 4, 0, 4, -112, -3, -3, -112, 0, 0, 5, 18, 63, 31, 63, 63, 50, 4, 0, 1, 2, 2, 3, 3,
3, 2, 1, 1, 0, 4, 18, 59, 63, 27, 95, 18, 4, 0, 4, -75, -3, -3, -3, -3, -108, 0, 0, 4, 18, 59, 63, 31, 59, 18, 5, 0, 1, 2, 2, 2,
2, 2, 1, 0, 5, 18, 59, 63, 59, 95, 13, 4, 0, 0, -112, -3, -4, -4, -4, -3, -3, -108, 0, 0, 5, 18, 63, 63, 63, 59, 50, 5, 0, 1, 1, 2,
1, 1, 0, 4, 18, 59, 63, 63, 91, 18, 4, 0, 36, -112, -3, -3, -3, -44, -40, -4, -4, -3, -112, 0, 0, 4, 18, 59, 63, 63, 59, 50, 4, 0, 1, 1,
0, 0, 5, 50, 59, 63, 63, 91, 49, 0, 0, 36, -112, -3, -3, -3, -48, 64, 100, -80, -4, -4, -3, -112, 0, 0, 4, 17, 59, 63, 63, 91, 50, 4, 0, 0,
0, 4, 50, 91, 63, 63, 95, 18, 0, 0, 4, -112, -3, -3, -7, -48, 96, 96, 64, 100, -48, -4, -4, -3, -112, 36, 0, 4, 18, 59, 63, 63, 91, 18, 4, 0,
9, 18, 63, 63, 63, 91, 50, 4, 0, 4, -112, -3, -4, -3, -48, 96, -128, -96, -92, 96, 96, -43, -3, -3, -4, -112, 36, 0, 4, 18, 63, 31, 63, 27, 18, 9,
22, 63, 63, 31, 63, 18, 4, 0, 0, -112, -3, -4, -4, -44, 100, -128, -64, -64, -64, -96, -128, 96, -44, -3, -4, -3, -112, 0, 0, 5, 18, 63, 31, 31, 63, 22,
63, 31, 31, 63, 18, 4, 0, 0, -112, -3, -4, -4, -44, 68, 96, -92, -64, -32, -32, -64, -96, 96, 68, -40, -4, -4, -3, -111, 0, 0, 4, 22, 31, 31, 31, 63 };
struct pattern message1 = {36, 33,message1Data};
PROGMEM const prog_uchar message2Data[] =
{-39, -3, -7, 104, 64, 64, 64, 64, 65, 65, -119, -6, -3, -108, 0, 0, 0, 0, 0, 0, 0, 4, 22, 63, 91, 10, 1, 1, 1, 1, 1, 5, 13, 59, 95, 58,
36, -76, -3, -7, -120, 64, 64, 64, 65, 64, 64, -116, -7, -3, -112, 0, 0, 0, 0, 0, 4, 50, 95, 59, 10, 5, 1, 1, 1, 1, 5, 14, 59, 91, 18, 9,
0, 36, -43, -3, -7, -120, 32, 65, 65, 65, 64, 96, -116, -7, -3, -112, 0, 0, 0, 4, 18, 127, 91, 14, 1, 1, 1, 1, 1, 1, 10, 55, 123, 50, 4, 0,
0, 0, 36, -75, -3, -39, 104, 64, 64, 97, 97, 64, 64, -116, -7, -3, 113, 4, 4, 18, 91, 91, 13, 1, 1, 1, 1, 1, 1, 10, 87, 91, 50, 5, 0, 0,
0, 0, 0, 36, -75, -3, -7, 104, 64, 64, 97, 65, 64, 64, -116, -2, -34, 81, 22, 91, 91, 14, 1, 1, 1, 1, 1, 1, 9, 87, 91, 50, 4, 0, 0, 0,
0, 0, 0, 0, 4, -39, -3, -7, -120, 64, 64, 97, 65, 64, 68, 108, -66, -98, 127, 59, 14, 5, 1, 1, 1, 1, 1, 9, 87, 127, 50, 9, 0, 0, 0, 0,
0, 0, 0, 0, 0, 36, -44, -3, -12, 104, 64, 64, 65, 33, 33, 4, 86, 123, 91, 14, 5, 1, 1, 1, 1, 1, 9, 54, 127, 54, 5, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 36, -43, -3, -7, 104, 64, 65, 33, 5, 50, 91, 91, 14, 1, 1, 1, 1, 1, 1, 9, 55, 127, 54, 4, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 4, -75, -3, -7, 104, 0, 5, 50, 91, 91, 10, 1, 1, 1, 1, 1, 1, 14, 59, 95, 54, 4, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 36, -76, -3, -39, 77, 50, 91, 59, 10, 5, 1, 1, 1, 0, 1, 10, 55, 95, 54, 4, 4, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 36, -107, -66, 122, 91, 91, 14, 5, 1, 1, 1, 1, 1, 14, 59, 91, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 89, 127, 91, 14, 1, 1, 0, 1, 1, 1, 10, 55, 95, 90, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 17, 91, 91, 14, 1, 1, 1, 1, 1, 1, 10, 55, 127, 126, -66, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 4, 50, 91, 91, 14, 1, 1, 1, 1, 1, 1, 10, 87, 123, 86, 81, -34, -2, -112, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 4, 50, 91, 87, 14, 1, 1, 1, 1, 1, 1, 14, 55, 95, 87, 5, 32, -116, -7, -3, -108, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 4, 49, 91, 91, 14, 1, 1, 1, 1, 1, 1, 10, 59, 95, 55, 5, 1, 65, 64, -116, -3, -3, -112, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 4, 18, 95, 59, 10, 1, 1, 1, 1, 0, 5, 13, 59, 90, 86, 5, 1, 65, 65, 64, 64, -116, -7, -3, -112, 32, 0, 0, 0, 0, 0,
0, 0, 0, 0, 4, 50, 91, 91, 14, 5, 1, 1, 1, 1, 5, 9, 59, 95, 126, -102, 73, 64, 64, 65, 65, 64, 64, -116, -7, -3, -116, 32, 0, 0, 0, 0,
0, 0, 0, 4, 18, 91, 91, 14, 1, 1, 1, 1, 1, 1, 14, 55, 95, 54, 117, -34, -39, 104, 64, 65, 65, 65, 64, 64, -116, -7, -3, -112, 0, 0, 0, 0,
0, 0, 4, 18, 91, 91, 14, 1, 1, 1, 1, 1, 1, 10, 55, 95, 50, 4, 4, -71, -3, -39, 104, 32, 65, 65, 65, 64, 64, -83, -3, -35, 108, 36, 0, 0,
0, 4, 18, 95, 91, 14, 1, 1, 0, 1, 1, 1, 10, 55, 95, 54, 4, 0, 0, 36, -76, -3, -7, 104, 32, 64, 64, 64, 64, 64, -116, -3, -3, -112, 36, 0,
4, 50, 63, 59, 14, 1, 0, 1, 1, 1, 1, 10, 87, 95, 54, 4, 0, 0, 0, 0, 36, -76, -3, -7, 104, 64, 64, 97, 65, 32, 68, -112, -3, -35, -112, 0,
50, 91, 59, 14, 5, 1, 1, 0, 1, 1, 10, 87, 59, 22, 8, 0, 0, 0, 0, 0, 0, 36, -40, -3, -7, 100, 96, 97, 97, 65, 64, 32, -112, -3, -3, -108,
14, 91, 95, 18, 5, 1, 1, 1, 1, 0, 5, 87, 59, 59, 9, 0, 0, 0, 0, 0, 0, 72, -39, -3, -43, 100, 97, 65, 65, 65, 64, 68, -112, -3, -3, 108,
0, 13, 59, 95, 18, 5, 1, 1, 1, 1, 1, 5, 50, 95, 59, 9, 0, 0, 0, 0, 72, -3, -2, -79, 64, 64, 65, 65, 97, 64, 68, -79, -3, -39, 108, 0,
0, 4, 13, 59, 91, 18, 5, 1, 1, 1, 1, 1, 5, 50, 95, 55, 9, 0, 0, 72, -39, -3, -79, 100, 64, 64, 65, 65, 64, 68, -79, -3, -39, 108, 0, 0,
0, 0, 0, 13, 91, 95, 18, 5, 1, 1, 1, 1, 1, 9, 55, 91, 86, 45, 40, -39, -3, -43, 68, 32, 64, 65, 65, 64, 64, -47, -3, -39, 108, 0, 0, 0,
0, 0, 0, 0, 13, 91, 95, 14, 1, 1, 1, 1, 1, 1, 9, 87, -101, 117, -67, -3, -43, 68, 64, 64, 65, 65, 64, 68, -80, -3, -7, 108, 0, 0, 0, 0,
0, 0, 0, 0, 0, 14, 91, 95, 14, 5, 1, 1, 1, 1, 0, 4, 117, -34, -2, -43, 68, 64, 65, 65, 65, 64, 68, -80, -3, -7, 108, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 13, 91, 95, 14, 5, 1, 0, 0, 0, 40, -39, -35, -75, 100, 64, 64, 65, 65, 64, 68, -80, -3, -7, 108, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 13, 91, 91, 50, 5, 0, 0, 72, -39, -3, -75, 68, 64, 64, 97, 65, 64, 68, -80, -3, -7, 104, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 13, 91, 91, 50, 4, 72, -39, -3, -75, 100, 64, 64, 97, 97, 64, 64, -79, -3, -7, 108, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 122, -102, 117, -39, -3, -47, 68, 64, 65, 64, 97, 96, 64, -79, -3, -39, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 121, -34, -3, -80, 100, 64, 64, 65, 65, 64, 64, -47, -2, -71, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, -71, -2, -43, 68, 64, 97, 65, 32, 64, 68, -112, -2, -34, 121, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 72, -71, -35, -75, 68, 64, 65, 65, 65, 64, 68, -112, -3, -2, -107, 122, 54, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 68, -39, -3, -43, 68, 64, 65, 65, 65, 32, 100, -80, -3, -3, 108, 40, 86, 127, 55, 9, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 72, -7, -3, -44, 68, 64, 65, 97, 65, 64, 100, -80, -3, -35, 108, 0, 0, 9, 51, 95, 91, 9, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 72, -39, -3, -47, 100, 64, 64, 65, 64, 64, 68, -79, -2, -35, 76, 0, 0, 1, 1, 5, 51, 127, 58, 9, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 72, -39, -3, -47, 100, 64, 65, 64, 64, 64, 68, -75, -3, -34, 113, 4, 0, 1, 1, 1, 1, 5, 50, 95, 58, 9, 0, 0, 0, 0, 0,
0, 0, 0, 0, 72, -39, -3, -43, 68, 64, 65, 65, 65, 32, 100, -80, -3, -35, -102, 122, 50, 5, 1, 1, 1, 1, 1, 5, 50, 95, 54, 9, 0, 0, 0, 0,
0, 0, 0, 72, -40, -3, -43, 68, 64, 65, 65, 65, 64, 68, -80, -3, -39, 76, 13, 90, 91, 18, 5, 1, 1, 1, 1, 1, 9, 55, 91, 54, 9, 0, 0, 0,
0, 0, 72, -40, -3, -43, 100, 64, 64, 65, 65, 64, 68, -79, -3, -3, 108, 0, 0, 13, 91, 95, 18, 5, 0, 1, 1, 1, 1, 10, 55, 95, 87, 9, 0, 0,
0, 72, -40, -3, -43, 100, 64, 65, 65, 65, 64, 100, -80, -3, -39, 108, 0, 0, 0, 0, 13, 91, 91, 18, 5, 0, 1, 1, 1, 1, 9, 55, 91, 54, 9, 0,
40, -39, -3, -40, 100, 64, 64, 65, 65, 64, 64, -83, -3, -3, 108, 0, 0, 0, 0, 0, 0, 14, 95, 91, 46, 1, 1, 1, 1, 1, 1, 10, 59, 95, 87, 9 };
struct pattern message2 = {36, 45,message2Data};
PROGMEM const prog_uchar message3Data[] =
{53, 53, 53, 53, 53, 53, 53, 53, 53, 85, 85, 85, 85, 85, 85, 49, 13, 4, 9, 9, 4, 13, 85, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 53, 53, 85, 49, 12, 8, 8, 8, 49, 13, 9, 46, 55, 55, 46, 4, 13, 85, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 53, 85, 49, 4, 9, 13, 14, 9, 9, 9, 14, 55, 23, 23, 55, 13, 12, 85, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 53, 85, 45, 8, 18, 55, 55, 55, 13, 5, 14, 23, 23, 23, 23, 18, 8, 49, 85, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 53, 85, 49, 8, 18, 55, 23, 23, 18, 9, 18, 23, 23, 23, 23, 18, 9, 17, 85, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 53, 85, 85, 8, 9, 50, 23, 23, 19, 10, 14, 23, 23, 23, 23, 18, 9, 49, 85, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 53, 53, 85, 49, 8, 13, 19, 23, 55, 14, 14, 23, 23, 23, 51, 9, 13, 85, 85, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 53, 53, 85, 85, 9, 9, 14, 51, 55, 14, 14, 55, 23, 55, 14, 4, 13, 49, 49, 85, 85, 53, 53, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 53, 53, 85, 12, 9, 13, 9, 18, 87, 14, 14, 50, 50, 14, 5, 0, 4, 9, 13, 13, 49, 53, 85, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 53, 85, 45, 8, 18, 55, 14, 10, 14, 10, 5, 5, 9, 5, 9, 9, 14, 18, 13, 13, 8, 12, 53, 85, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 85, 53, 9, 13, 55, 23, 19, 14, 9, 5, 0, 0, 0, 9, 55, 55, 23, 23, 23, 23, 18, 9, 13, 85, 85, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 85, 17, 9, 18, 23, 23, 23, 55, 50, 5, 0, 0, 0, 14, 55, 23, 23, 23, 23, 23, 55, 13, 13, 85, 85, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 53, 13, 13, 55, 23, 23, 23, 23, 55, 10, 0, 0, 0, 14, 55, 23, 23, 23, 23, 55, 50, 9, 13, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 53, 13, 14, 55, 23, 23, 23, 23, 55, 14, 5, 9, 5, 9, 55, 55, 23, 23, 18, 13, 9, 8, 49, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 53, 13, 14, 55, 23, 23, 23, 23, 55, 14, 14, 51, 14, 5, 10, 50, 50, 14, 4, 8, 49, 49, 53, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 53, 13, 14, 55, 23, 23, 23, 23, 51, 10, 14, 55, 51, 14, 5, 5, 9, 9, 8, 49, 85, 85, 85, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 53, 13, 14, 55, 23, 23, 23, 55, 14, 9, 18, 55, 23, 55, 14, 9, 9, 85, 85, 85, 85, 53, 85, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 53, 12, 13, 54, 55, 55, 18, 14, 4, 5, 50, 55, 23, 23, 55, 14, 8, 85, 85, 53, 85, 53, 53, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 53, 17, 8, 13, 50, 50, 5, 0, 40, 40, 8, 50, 23, 23, 55, 18, 4, 49, 85, 53, 85, 53, 53, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 53, 85, 45, 4, 4, 4, 4, 4, -75, -34, 40, 8, 50, 23, 55, 18, 4, 49, 85, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 53, 85, 49, 12, 45, 44, 36, -76, -3, -3, -35, 40, 13, 54, 55, 18, 9, 49, 85, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 53, 53, 85, 117, 44, 40, -76, -3, -4, -4, -3, -108, 4, 50, 54, 50, 13, 17, 85, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 53, 53, 85, 44, 4, -108, -3, -4, -4, -4, -4, -3, 112, 4, 82, 50, 8, 49, 85, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 53, 53, 85, 8, 76, -3, -4, -4, -4, -4, -4, -4, -35, 8, 45, 13, 8, 85, 53, 53, 53, 53, 53, 53, 53, 85, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 53, 85, 85, 44, -108, -3, -4, -4, -4, -4, -4, -4, -3, -108, 4, 8, 16, 85, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 53, 85, 85, 44, -76, -4, -4, -4, -4, -4, -4, -4, -4, -108, 40, 117, 85, 53, 53, 53, 53, 53, 53, 53, 85, 53, 53, 53, 53, 53,
53, 53, 53, 85, 85, 85, 85, 85, 48, 8, -76, -4, -4, -4, -4, -4, -4, -4, -4, -108, 40, 85, 85, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
85, 85, 85, 48, 48, 48, 48, 80, 44, 40, -76, -4, -4, -4, -4, -4, -4, -4, -36, 112, 40, 85, 85, 85, 85, 85, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
81, 44, 40, 4, 76, 80, 76, 40, 4, 36, -76, -3, -4, -4, -4, -4, -4, -4, -35, 40, 76, 81, 81, 48, 44, 49, 85, 85, 85, 53, 53, 53, 53, 53, 53, 53,
44, 4, 112, -112, -40, -36, -40, -112, 72, 0, 108, -7, -4, -4, -4, -4, -4, -4, -39, 36, 76, 44, 44, 40, 8, 8, 8, 48, 81, 85, 85, 85, 53, 53, 53, 53,
76, 76, -3, -3, -4, -4, -4, -4, -40, 108, 36, 108, -7, -4, -4, -4, -4, -3, 108, 4, 40, -108, -76, -76, -76, -112, 72, 4, 4, 44, 117, 85, 85, 85, 53, 53,
76, 72, -4, -4, -4, -4, -4, -4, -4, -4, -80, 36, 108, -3, -4, -4, -4, -40, 36, 36, -72, -3, -4, -4, -4, -4, -40, -108, 40, 4, 8, 44, 81, 85, 85, 85,
76, 112, -4, -4, -4, -4, -4, -4, -4, -4, -3, -112, 36, 108, -76, -3, -3, 108, 0, -76, -3, -4, -4, -4, -4, -4, -4, -4, -40, -76, 76, 4, 4, 4, 44, 81,
76, 76, -3, -4, -4, -4, -4, -4, -4, -4, -4, -4, -112, 36, 68, -39, -39, 36, 108, -3, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -39, -112, 112, 76, 4, 44,
76, 4, -76, -4, -4, -4, -4, -4, -4, -4, -4, -4, -3, -116, 0, 68, 36, 32, -76, -3, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -3, -3, -35, 4, 44,
81, 4, 40, -3, -4, -4, -4, -4, -4, -4, -4, -4, -4, -3, 72, 0, 0, 0, -116, -3, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -3, -3, 112, 4, 81,
85, 80, 4, -112, -3, -4, -4, -4, -4, -4, -4, -4, -4, -3, 72, 0, 0, 0, 72, -3, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -3, -76, 40, 4, 48, 85,
85, 85, 44, 4, -112, -3, -4, -4, -4, -4, -4, -4, -40, -80, 36, 0, 0, 0, 0, -116, -80, -4, -4, -4, -4, -4, -4, -4, -3, -35, 76, 4, 8, 80, 85, 85,
53, 85, 81, 44, 4, 76, -39, -4, -4, -4, -4, -3, -76, 36, 108, 36, 0, 0, 104, -112, 72, 72, -80, -3, -4, -3, -39, 108, 40, 40, 4, 44, 85, 85, 53, 53,
53, 53, 85, 85, 48, 4, 40, -76, -36, -3, -3, 108, 32, 72, -39, -39, 36, 72, -7, -3, -76, 108, 72, -112, -76, -108, 76, 4, 4, 80, 85, 85, 85, 53, 53, 53,
53, 53, 53, 85, 85, 80, 8, 4, 40, 108, 72, 32, 72, -40, -3, -3, -116, 36, -76, -3, -4, -3, -76, 36, 36, 76, 44, 80, 85, 85, 85, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 85, 85, 81, 76, 4, 0, -116, -7, -4, -4, -4, -7, 72, 36, -7, -4, -4, -3, -76, 40, 76, 117, 85, 85, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 85, 85, 44, 0, 72, -39, -4, -4, -4, -4, -4, -76, 36, -76, -4, -4, -4, -4, -76, 4, 44, 85, 85, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 85, 48, 4, 40, -76, -4, -4, -4, -4, -4, -4, -3, 72, 68, -40, -4, -4, -4, -36, 76, 8, 81, 85, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 85, 8, 4, -76, -3, -4, -4, -4, -4, -4, -4, -3, 108, 0, 72, -4, -4, -4, -4, -40, 40, 8, 85, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 85, 8, 72, -3, -4, -4, -4, -4, -4, -4, -4, -39, 72, 40, 0, -39, -4, -4, -4, -4, -72, 44, 48, 85, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 85, 85, 44, 108, -3, -4, -4, -4, -4, -4, -4, -3, -112, 0, 76, 0, -112, -3, -4, -4, -4, -40, 76, 48, 85, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 85, 48, 40, -76, -3, -4, -4, -4, -4, -4, -40, 108, 36, 4, 72, 0, 32, -80, -4, -4, -4, -35, 76, 44, 85, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 85, 44, 4, -108, -4, -4, -4, -4, -3, -39, 76, 0, 4, 68, 32, 96, 100, 64, -80, -3, -4, -3, 76, 44, 85, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 85, 44, 40, -72, -3, -40, -40, -40, -72, 76, 0, 4, 109, 64, 64, -91, -91, 96, 100, -8, -3, -40, 76, 48, 85, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 85, 44, 80, -3, -35, 108, 36, 36, 4, 4, 44, 113, 68, 64, -91, -59, -59, -92, 64, -116, -3, -39, 76, 80, 85, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 85, 48, 8, -108, 112, 4, 40, 44, 44, 44, 113, 72, 32, -128, -59, -63, -63, -91, 96, 68, -39, -39, 76, 48, 85, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 85, 44, 44, 8, 44, 85, 85, 85, 117, 113, 32, 96, -91, -63, -31, -63, -91, 96, 32, -112, -39, 76, 48, 85, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 85, 85, 81, 81, 85, 85, 53, 85, 81, 4, 64, -91, -59, -31, -31, -59, -124, 64, 36, 108, 112, 40, 48, 85, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 53, 53, 85, 85, 53, 53, 53, 85, 77, 32, -123, -59, -63, -31, -31, -59, 96, 68, 113, 76, 44, 44, 85, 85, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 53, 53, 53, 85, 85, 85, 85, 85, 109, 68, -91, -63, -31, -31, -63, -95, 64, 109, -107, 117, 117, 85, 85, 85, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 53, 85, 85, 81, 76, 76, 81, 113, 109, 64, -91, -63, -31, -31, -59, -91, 64, 100, 109, 76, 113, 117, 85, 85, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 85, 81, 44, 4, 0, 0, 0, 105, 68, 96, -59, -63, -31, -63, -59, 96, 64, 96, 100, 64, 68, 72, 76, 81, 85, 85, 53, 53, 53, 53,
53, 53, 53, 53, 53, 85, 85, 44, 0, 64, -123, -123, 100, 64, 32, -124, -59, -63, -63, -59, -91, 96, -91, -91, -91, -91, -91, 100, 36, 77, 85, 85, 85, 53, 53, 53,
53, 53, 53, 53, 53, 85, 81, 36, 64, -123, -59, -59, -91, -128, 96, -128, -91, -59, -59, -91, 96, -128, -59, -59, -63, -63, -59, -91, 100, 36, 76, 85, 53, 53, 53, 53,
53, 53, 53, 53, 85, 81, 36, 64, -91, -59, -63, -63, -63, -59, -128, 96, -128, -124, 96, 96, 96, -95, -59, -63, -31, -63, -63, -91, -123, 0, 8, 85, 53, 53, 53, 53,
53, 53, 53, 53, 85, 81, 32, 96, -59, -63, -31, -31, -31, -63, -59, 96, 32, 32, 64, -128, -91, -59, -63, -31, -31, -63, -59, -124, 64, 0, 44, 85, 53, 53, 53, 53,
53, 53, 53, 85, 85, 76, 64, -91, -59, -31, -31, -31, -31, -63, -91, 96, 32, 0, 32, 96, -59, -63, -31, -31, -63, -59, 96, 32, 40, 81, 85, 85, 53, 53, 53, 53,
53, 53, 53, 85, 81, 40, 96, -59, -63, -31, -31, -31, -31, -63, -91, 64, 32, 0, 32, 96, -59, -59, -63, -63, -59, -128, 32, 40, 113, 85, 85, 53, 53, 53, 53, 53,
53, 53, 53, 85, 81, 72, 96, -59, -63, -31, -31, -31, -31, -63, -59, 96, 32, 32, 32, 64, -91, -59, -59, -91, -123, 64, 36, 81, 85, 85, 53, 53, 53, 53, 53, 53,
53, 53, 53, 85, 81, 40, 64, -91, -59, -31, -31, -31, -31, -63, -91, 96, 64, 64, 96, 64, 96, -123, -128, 100, 64, 36, 81, 85, 85, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 85, 76, 32, -123, -59, -63, -31, -31, -63, -63, -128, 96, -128, -91, -91, -128, 96, 64, 64, 72, 72, 81, 85, 85, 53, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 85, 81, 40, 32, -124, -91, -59, -59, -59, -128, 96, -91, -91, -59, -59, -59, -91, 96, 32, 109, 117, 85, 85, 53, 53, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 85, 81, 40, 32, 64, -124, -91, -128, 96, -95, -59, -63, -63, -63, -63, -59, -91, 64, 36, 113, 85, 85, 53, 53, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 85, 85, 85, 76, 36, 100, 96, 96, -128, -91, -91, -128, -95, -59, -63, -63, -59, -123, 68, 113, 85, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 53, 85, 85, 113, -111, 68, 96, -91, -91, -128, 100, 64, -91, -59, -63, -59, -124, 36, 113, 85, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 53, 53, 85, 117, 109, 64, -128, -91, -91, 64, 105, 68, 64, -91, -59, -91, 100, 36, 85, 85, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 53, 85, 85, 76, 32, 96, -91, -59, -123, 64, 113, 113, 36, 64, -91, -91, 100, 76, 85, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 53, 85, 44, 0, 96, -91, -59, -91, 96, 68, 113, 85, 77, 36, 100, 105, 4, 76, 85, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 85, 81, 36, 64, -91, -59, -59, -91, 64, 76, 85, 85, 85, 76, 0, 4, 4, 81, 85, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 85, 85, 40, 32, -124, -91, -59, -59, 96, 36, 113, 85, 53, 85, 81, 49, 81, 81, 85, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 85, 85, 40, 64, -119, -91, -91, -123, 32, 76, 85, 85, 53, 53, 85, 85, 85, 85, 85, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 85, 85, 40, 32, 64, 96, 96, 64, 36, 81, 85, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 85 };
struct pattern message3 = {36, 78,message3Data};
PROGMEM const prog_uchar message4Data[] =
{-120, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-120, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -44, -44, -44, -44, -44, 0, 0, 0, 0, 0, 0, 0, 0,
-120, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -44, -4, -4, -4, -4, -4, -44, 0, 0, 0, 0, 0, 0, 0,
-120, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -44, -4, -44, -44, -44, -8, -8, -4, -44, 0, 0, 0, 0, 0, 0,
-120, -4, 0, 0, 0, -8, -4, -48, 0, 0, 0, -8, -4, -48, 0, 0, 0, -44, -4, -44, -44, -44, -44, -8, -4, -44, 0, 0, 0, 0, 0, 0,
-120, -4, 68, -120, 68, -4, -1, -12, 68, -120, 68, -4, -1, -12, 68, -120, 68, -44, -4, -44, -44, -8, -4, -4, -4, -44, 0, 0, 0, 0, 0, 0,
-120, -4, 0, 0, 0, -8, -4, -48, 0, 0, 0, -8, -4, -48, 0, 0, 0, -44, -4, -8, -44, -4, -1, -1, -4, -44, 0, 0, 0, 0, 0, 0,
-120, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -44, -4, -8, -8, -4, -1, -1, -4, -44, 0, 0, 0, 0, 0, 0,
-120, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -44, -4, -4, -4, -4, -4, -44, 0, 0, 0, 0, 0, 0, 0,
-120, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -44, -44, -44, -44, -44, 0, 0, 0, 0, 0, 0, 0, 0,
-120, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-120, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-120, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -93, -93, -93, -93, -93, 0, 0,
-120, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -93, -5, -13, -13, -13, -13, -93, 0,
-120, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -93, -5, -93, -93, -93, -25, -25, -13, -93,
-120, -8, 0, 0, 0, -8, -4, -48, 0, 0, 0, -8, -4, -48, 0, 0, 0, -8, -4, -48, 0, 0, 0, -93, -13, -93, -93, -93, -93, -25, -13, -93,
-120, -8, 68, -120, 68, -4, -1, -12, 68, -120, 68, -4, -1, -12, 68, -120, 68, -4, -1, -12, 68, -120, 68, -93, -13, -93, -93, -25, -5, -5, -13, -93,
-120, -8, 0, 0, 0, -8, -4, -48, 0, 0, 0, -8, -4, -48, 0, 0, 0, -8, -4, -48, 0, 0, 0, -93, -13, -25, -93, -5, -1, -1, -5, -93,
-120, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -93, -13, -25, -25, -5, -1, -1, -5, -93,
-120, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -93, -13, -13, -13, -5, -5, -93, 0,
-120, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -93, -93, -93, -93, -93, 0, 0,
-120, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-120, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-120, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 56, 56, 56, 56, 0, 0, 0, 0, 0, 0, 0, 0,
-120, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, -34, -67, -67, -67, -67, 56, 0, 0, 0, 0, 0, 0, 0,
-120, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, -34, 56, 56, 56, 124, 124, -67, 56, 0, 0, 0, 0, 0, 0,
-120, -4, 0, 0, 0, -8, -4, -48, 0, 0, 0, -8, -4, -48, 0, 0, 0, 56, -67, 56, 56, 56, 56, 124, -67, 56, 0, 0, 0, 0, 0, 0,
-120, -4, 68, -120, 68, -4, -1, -12, 68, -120, 68, -4, -1, -12, 68, -120, 68, 56, -67, 56, 56, 124, -34, -34, -67, 56, 0, 0, 0, 0, 0, 0,
-120, -4, 0, 0, 0, -8, -4, -48, 0, 0, 0, -8, -4, -48, 0, 0, 0, 56, -67, 124, 56, -34, -1, -1, -34, 56, 0, 0, 0, 0, 0, 0,
-120, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, -67, 124, 124, -34, -1, -1, -34, 56, 0, 0, 0, 0, 0, 0,
-120, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, -67, -67, -67, -34, -34, 56, 0, 0, 0, 0, 0, 0, 0,
-120, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 56, 56, 56, 56, 0, 0, 0, 0, 0, 0, 0, 0,
-120, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-120, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-120, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -16, -16, -16, -16, -16, 0, 0,
-120, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -16, -8, -12, -12, -12, -12, -16, 0,
-120, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -16, -8, -16, -16, -16, -16, -16, -12, -16,
-120, -8, 0, 0, 0, -8, -4, -48, 0, 0, 0, -8, -4, -48, 0, 0, 0, -8, -4, -48, 0, 0, 0, -16, -12, -16, -16, -16, -16, -16, -12, -16,
-120, -8, 68, -120, 68, -4, -1, -12, 68, -120, 68, -4, -1, -12, 68, -120, 68, -4, -1, -12, 68, -120, 68, -16, -12, -16, -16, -16, -8, -8, -12, -16,
-120, -8, 0, 0, 0, -8, -4, -48, 0, 0, 0, -8, -4, -48, 0, 0, 0, -8, -4, -48, 0, 0, 0, -16, -12, -16, -16, -8, -1, -1, -8, -16,
-120, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -16, -12, -16, -16, -8, -1, -1, -8, -16,
-120, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -16, -12, -12, -12, -8, -8, -16, 0,
-120, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -16, -16, -16, -16, -16, 0, 0,
-120, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-120, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 23, 23, 23, 23, 0, 0, 0, 0, 0, 0, 0, 0,
-120, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, -65, 123, 123, 123, 123, 23, 0, 0, 0, 0, 0, 0, 0,
-120, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, -65, 23, 23, 23, 55, 55, 123, 23, 0, 0, 0, 0, 0, 0,
-120, -4, 0, 0, 0, -8, -4, -48, 0, 0, 0, -8, -4, -48, 0, 0, 0, 23, 123, 23, 23, 23, 23, 55, 123, 23, 0, 0, 0, 0, 0, 0,
-120, -4, 68, -120, 68, -4, -1, -12, 68, -120, 68, -4, -1, -12, 68, -120, 68, 23, 123, 23, 23, 55, -65, -65, 123, 23, 0, 0, 0, 0, 0, 0,
-120, -4, 0, 0, 0, -8, -4, -48, 0, 0, 0, -8, -4, -48, 0, 0, 0, 23, 123, 55, 23, -65, -1, -1, -65, 23, 0, 0, 0, 0, 0, 0,
-120, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 123, 55, 55, -65, -1, -1, -65, 23, 0, 0, 0, 0, 0, 0,
-120, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 123, 123, 123, -65, -65, 23, 0, 0, 0, 0, 0, 0, 0,
-120, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 23, 23, 23, 23, 0, 0, 0, 0, 0, 0, 0, 0,
-120, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-120, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-120, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -64, -64, -64, -64, -64, 0, 0,
-120, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -64, -14, -22, -22, -22, -22, -64, 0,
-120, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -64, -14, -64, -64, -64, -31, -31, -22, -64,
-120, -8, 0, 0, 0, -8, -4, -48, 0, 0, 0, -8, -4, -48, 0, 0, 0, -8, -4, -48, 0, 0, 0, -64, -22, -64, -64, -64, -64, -31, -22, -64,
-120, -8, 68, -120, 68, -4, -1, -12, 68, -120, 68, -4, -1, -12, 68, -120, 68, -4, -1, -12, 68, -120, 68, -64, -22, -64, -64, -31, -14, -14, -22, -64,
-120, -8, 0, 0, 0, -8, -4, -48, 0, 0, 0, -8, -4, -48, 0, 0, 0, -8, -4, -48, 0, 0, 0, -64, -22, -31, -64, -14, -1, -1, -14, -64,
-120, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -64, -22, -31, -31, -14, -1, -1, -14, -64,
-120, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -64, -22, -22, -22, -14, -14, -64, 0,
-120, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -64, -64, -64, -64, -64, 0, 0,
-120, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
struct pattern message4 = {32, 65,message4Data};
PROGMEM const prog_uchar message5Data[] =
{0, -90, -1, 66, 0, 0, 66, -1, 66, 0, 0, 0, 66, -1, 66, 0, 66, -1, -90, 0, 0, 0, 0, 66, -1, -90, 0, 0, 66, -1, -90, 0,
0, -90, -9, 66, 0, 0, 66, -9, 66, 0, 0, 0, 66, -9, 66, 0, 66, -9, -90, 0, 0, 0, 0, -90, -1, -90, 0, 0, -90, -1, 66, 0,
0, -90, -1, -90, 98, 0, 66, -9, -90, 66, 0, 0, 66, -9, 66, 0, 66, -9, -90, 0, 0, 0, -90, -1, -90, -90, 0, 0, 66, -9, -90, 66,
0, 66, -90, -1, 98, 0, 0, -9, -90, 66, 0, 0, 66, -9, 66, 0, 66, -9, -90, 0, 0, 0, -90, -1, -90, -90, 0, 0, 66, -9, -90, 66,
0, 0, 66, -1, 66, 0, 0, -90, -1, -90, 0, 0, 66, -9, 66, 0, 0, -90, -1, 66, 0, 0, 98, 66, -1, -90, 0, 0, 98, -90, -1, -90,
0, 0, 66, -1, -90, 0, 0, 66, -9, -1, 66, 0, 66, -9, 66, 0, 0, 66, -1, -90, 66, 0, 98, -90, -1, 66, 0, 0, 0, 66, -1, -90,
0, 0, 66, -1, -90, 66, 0, 0, -90, -1, 66, 0, 66, -9, -90, 66, 0, 66, -90, -1, 66, -90, -90, 98, -9, 66, 0, 0, 0, 66, -1, -90,
0, 0, 66, -9, -1, 66, 66, 0, -90, -9, 66, 0, 66, -90, -9, 66, 0, 0, 66, -9, -90, -1, -90, -9, -90, 0, 0, 0, 0, 66, -9, -90,
0, 0, 66, -90, -1, 66, 66, 0, -90, -9, 66, 0, 0, 66, -9, 66, 0, 0, 0, -90, -1, -90, -1, -90, 66, 0, 0, 0, 0, -90, -9, -90,
0, 0, 0, 66, -9, -90, 66, 66, -1, -9, 66, 0, 0, 66, -9, 66, 0, 0, 66, -1, -90, 66, -1, 66, 0, 0, 0, 0, 0, -90, -1, 66,
0, 0, 0, 66, -90, -1, -90, -90, -9, -90, 0, 0, 0, 66, -9, 66, 0, -90, -1, -90, 0, 66, -9, -90, 66, 0, 0, 0, 0, -90, -1, 66,
0, 0, 0, 0, 66, -90, -9, -90, -9, 66, 0, 0, 0, 66, -9, 66, 66, -1, -9, 66, 0, 0, -90, -1, -90, 0, 0, 0, 0, -90, -1, 66,
0, 0, 0, 0, 98, 66, -90, -1, -90, 66, 0, 0, 0, 66, -1, -90, 66, -1, -90, 0, 0, 0, 66, -1, -1, 66, 0, 0, 0, 66, -1, -90,
0, 0, 0, 0, 98, 0, 66, -9, 66, 0, 0, 0, 0, 0, -90, -1, -90, -9, -90, 0, 0, 0, 0, -90, -1, -90, 0, 0, 0, 66, -9, 66,
0, 0, 0, 0, 98, 0, 66, -9, -90, 66, 0, 0, 0, 0, 0, 66, -1, -9, -90, 0, 0, 0, 0, 66, -1, -90, 0, 0, 66, -90, -9, 66,
0, 0, 0, 0, 98, 0, 0, -90, -1, 66, 0, 0, 0, 0, 0, 66, -9, -90, 66, 0, 0, 0, 0, 66, -1, -90, 0, 0, -90, -1, -90, 98,
0, 0, 0, 0, 66, 98, 0, -90, -1, -90, 66, 0, 0, 0, 0, 0, -1, -90, 66, 0, 0, 0, 0, 66, -1, -90, 0, 0, -90, -1, -90, 0,
0, 0, 0, 0, 66, 0, 98, 0, -90, -1, -90, 66, 0, 0, 0, 66, -1, -90, 66, 0, 0, 0, 0, -90, -1, 66, 0, 66, -1, -90, 66, 0,
0, 0, 0, 98, 0, 0, 98, 0, 66, -90, -1, 66, 0, 0, 0, 66, -9, -90, 66, 0, 0, 0, 0, -90, -9, 66, 0, 66, -1, 66, 0, 0,
0, 0, 66, 0, 0, 0, 0, 66, 66, -90, -9, 66, 0, 0, 0, 66, -9, -90, 66, 0, 0, 0, 0, -90, -9, 66, 66, -90, -1, 98, 0, 0,
0, 66, 0, 0, 66, -90, -90, -1, -1, -9, -90, 0, 0, 0, 0, 0, -1, -90, 66, 0, 0, 0, 0, -90, -9, 66, -90, -1, 66, 98, 0, 0,
0, 98, 0, 0, -90, -90, -1, -90, -90, -90, 66, 0, 0, 0, 0, 66, -90, -1, 66, 0, 0, 0, 0, -90, -1, 66, -1, -9, 66, 0, 0, 0,
0, 66, 0, 0, -90, -1, 66, 0, 0, 98, 0, 0, 0, 0, -90, -1, -90, -1, -90, 0, 0, 0, 0, -90, -1, -90, -9, -90, 0, 0, 0, 0,
0, 66, 0, 0, -90, -1, 66, 0, 0, 0, 98, 0, 0, 66, -1, -90, 0, -90, -1, -90, 0, 0, 0, -90, -9, -1, -90, 66, 0, 0, 0, 0,
0, 66, 0, 0, -90, -1, -90, 0, 0, 0, 98, 0, 0, 66, -9, -9, 66, 66, -90, -1, 66, 0, 0, 66, -90, -1, 66, 0, 0, 0, 0, 0,
98, 0, 0, 0, 66, -90, -1, -90, 0, 0, 0, 98, 0, 0, -90, -9, 66, 0, 66, -9, 66, 0, 0, -90, -1, -9, -90, 66, 0, 0, 0, 0,
0, 98, 66, 0, 66, 66, -90, -1, 66, 0, 0, 98, 0, 66, -1, -9, 66, 0, 66, -1, 66, 0, 0, -90, -9, -90, -1, 66, 0, 0, 0, 0,
0, 0, 0, 66, -90, -90, -9, -1, 66, 0, 0, 98, 0, -90, -1, -90, 0, 0, 66, -1, 66, 0, 0, -90, -9, -90, -1, -90, 0, 0, 0, 0,
0, 0, 66, 66, -1, -1, -1, -90, 66, 0, 98, 0, 66, -1, 66, 0, 0, 0, 66, -1, 66, 0, 66, -1, -9, 66, -9, -90, 0, 0, 0, 0,
0, 0, 66, -1, -90, 66, 66, 66, 0, 98, 0, 0, 66, -9, 66, 0, 0, 0, 0, -9, -90, 66, 66, -9, -90, 66, -9, -1, 66, 0, 0, 0,
0, 0, -90, -1, 66, 0, 0, 0, 98, 98, 0, 0, 0, -1, -90, 66, 0, 0, 0, -9, -90, 66, 66, -9, -90, 0, -90, -1, 66, 0, 0, 0,
0, 66, -90, -1, 66, 0, 0, 0, 98, 0, 0, 0, 66, -90, -9, 66, 0, 0, 0, -9, -90, 66, -90, -9, -90, 0, -90, -9, 66, 0, 0, 0,
0, -90, -1, -90, 98, 98, 0, 0, 98, 0, 0, 66, 66, -90, -9, 66, 0, 0, 0, -90, -9, -90, -1, 66, 0, 66, -1, -9, 66, 0, 0, 0,
0, -90, -1, 66, 0, 98, 0, 0, 98, 0, 66, -90, -1, -1, -90, 66, 0, 0, 0, -90, -1, -1, -90, 0, 0, 66, -1, -90, 0, 0, 0, 0,
66, -1, -90, 0, 0, 66, 66, 0, 98, 66, -1, -1, -90, 66, 0, 0, 0, 0, 0, -90, -9, -90, 0, 0, 0, 66, -9, -90, 98, 0, 0, 0,
66, -1, -90, 0, 0, 0, 66, 66, -90, -90, -9, 66, 0, 0, 0, 0, 0, 66, -90, -9, -90, -1, -90, 0, 0, 66, -9, -90, 98, 0, 0, 0,
66, -9, -1, 66, 0, 0, 66, -90, -9, -1, -90, 66, 0, 0, 0, 0, 0, -90, -1, -90, 66, -90, -1, 66, 0, -90, -9, -90, 98, 0, 0, 0,
0, 66, -1, -90, 0, 0, 66, -9, -90, 66, 66, 0, 0, 0, 0, 0, 0, -90, -1, 66, 0, 0, -90, -1, -90, -1, -90, 66, 0, 0, 0, 0,
0, 66, -1, -90, 0, 0, 66, -90, -1, 66, 0, 0, 0, 0, 0, 0, 0, -90, -1, 66, 0, 0, 0, -90, -90, -1, 66, 0, 98, 0, 0, 0,
0, 66, -1, -90, 0, 66, 66, -90, -1, 66, 98, 0, 0, 0, 0, 0, 0, -90, -9, 66, 0, 0, 0, 66, 66, -9, 66, 0, 98, 0, 0, 0,
0, 66, -1, -90, 0, -90, -1, -1, -90, -90, 0, 98, 98, 0, 0, 0, 0, -90, -9, 66, 0, 0, 0, 0, 66, -9, 66, 98, 98, 0, 0, 0,
66, -90, -1, -90, -90, -1, -90, 66, -9, -90, 0, 0, 0, 98, 0, 0, -90, -1, -9, 66, 0, 0, 0, 0, 66, -9, -90, -90, 66, 98, 0, 0,
66, -90, -1, 66, -1, -90, 66, 66, -90, -1, 66, 0, 0, 98, 0, 66, -1, -9, -90, 0, 0, 0, 0, 0, 66, -90, -1, -1, -90, 98, 98, 0,
0, 0, -90, -1, -90, 66, 0, 0, -90, -9, 66, 0, 0, 98, 0, 66, -9, -90, 66, 0, 0, 0, 0, 0, 0, 66, 66, -90, -1, 66, 66, 0,
0, 0, -90, -9, -90, 66, 0, 0, -90, -9, 66, 0, 0, 0, 98, 0, -90, -1, -90, 0, 0, 0, 0, 0, 0, 0, 0, 66, -9, -1, -90, 0,
0, 0, 66, -9, -1, 66, 0, 0, 0, -90, -9, 66, 0, 0, 98, 0, 66, -1, -90, 0, 0, 0, 0, 0, 0, 0, 0, 0, -90, -9, -1, 66,
0, 0, 66, -9, -90, -1, -90, 0, 0, 66, -1, -90, 0, 0, 98, 0, 0, -90, -1, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, -9, 66,
0, 0, 66, -9, 0, -90, -1, 66, 66, -90, -1, -90, 0, 98, 0, 0, 0, -90, -1, 66, 66, 0, 0, 0, 0, 0, 0, 0, 0, -90, -9, 66,
0, 0, 66, -9, 0, -90, -9, 66, 66, -1, -90, 0, 0, 98, 0, 0, 0, -90, -9, -1, -90, 66, 0, 0, 0, 0, 0, 0, 0, -1, -90, 66,
0, 0, -90, -9, 0, -90, -9, 66, -90, -1, 66, 0, 98, 0, 0, 0, 0, 0, 66, -9, -1, -1, 66, 0, 0, 0, 0, 0, 0, -1, -90, 66,
0, 0, -90, -1, 0, 66, -90, -90, -90, -9, 66, 98, 0, 0, 0, 0, 0, 0, 0, 0, 66, -90, -1, -90, 0, 0, 0, 0, 0, -90, -1, 66,
0, 0, -90, -9, 0, 66, -90, -90, -1, -9, 66, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, -90, -1, 66, 0, 0, 0, 0, 66, -1, 66,
0, 66, -9, -90, 0, 66, -90, -90, -9, -90, 0, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, -90, -1, 66, 0, 0, 0, 0, 66, -1, 66,
0, 66, -1, -90, 0, 0, 66, -1, -90, 66, 0, 98, 98, 0, 0, 0, 0, 0, 0, 0, 0, 66, -1, -90, 0, 0, 0, 0, 0, 66, -9, 66,
0, 66, -1, -90, 0, 0, 66, -9, -90, 66, 0, 0, 98, 0, 0, 0, 0, 0, 0, 0, 66, -1, -90, 66, 0, 0, 0, 0, 0, -90, -9, 66,
0, -90, -1, -90, 0, 66, -90, -90, -1, -90, 0, 0, 0, 98, 0, 0, 0, 0, 0, 0, 66, -9, 66, 0, 0, 0, 0, 0, 0, -90, -9, 66,
66, -1, -9, 66, 0, 66, -90, -90, -90, -1, 66, 0, 0, 98, 98, 0, 0, 0, 0, 0, 66, -9, -90, -90, 66, 66, 0, 0, 0, -90, -1, 66,
66, -1, -90, 0, 0, 66, -90, -90, -1, -9, -90, 0, 0, 0, 98, 0, 0, 0, 0, 0, 0, 66, -1, -1, -1, -90, 66, 0, 0, 66, -1, 66,
66, -1, -90, 0, 0, 66, -90, -1, 66, -90, -1, 66, 0, 0, 98, 0, 0, 0, 0, 0, 0, 0, 66, -90, -90, -1, -90, 66, 0, 66, -1, 66,
66, -1, -90, 0, 0, 66, -1, -90, 0, 66, -9, -90, 66, 0, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -90, -9, -90, 98, 66, -1, 66,
66, -1, -90, 0, 0, 66, -1, -90, 0, 0, -90, -1, 66, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -90, -1, -90, 66, -1, -90, 66,
66, -1, -90, 0, 0, 66, -90, -1, 66, 0, 66, -1, -90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -90, -1, -90, 0, 66, -1, -90, 66,
66, -1, -90, 0, 0, 66, 66, -9, 66, 0, 0, -90, -1, -90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, -1, 66, 98, 0, 66, -1, 66, 66,
66, -9, -90, 0, 0, 66, 66, -9, 66, 0, 0, 66, -90, -1, 66, 0, 0, 0, 0, 0, 0, 0, 0, 66, -9, 66, 0, 0, 66, -1, -90, 66,
0, -90, -1, 66, 0, 0, 66, -9, 66, 0, 0, 98, 0, -1, -90, 66, 0, 0, 0, 0, 0, 0, 0, 66, -1, -90, 0, 0, 0, -90, -1, -90,
0, -90, -9, 66, 0, 66, -1, -90, 0, 0, 0, 98, 0, -90, -1, 66, 0, 0, 0, 0, 0, 0, 0, 66, -90, -1, 66, 0, 0, -90, -9, -90,
0, -90, -9, 66, 0, -90, -1, -90, 0, 0, 98, 0, 0, -90, -1, -90, 0, 0, 0, 0, 0, 0, 0, -90, -1, -1, 66, 0, 0, 66, -1, -90,
0, 66, -90, -9, 66, -1, -90, 0, 0, 0, 98, 0, 0, 66, -9, -90, 0, 0, 0, 0, 0, 0, -90, -1, -90, -9, -1, 66, 0, 66, -1, 66,
0, -90, -1, -90, -1, -90, 66, 0, 0, 0, 98, 0, 0, 66, -9, -90, 0, 0, 0, 0, 0, 66, -1, 66, 0, -90, -1, 66, 98, 66, -1, 66,
0, -90, -1, -90, -90, -1, 66, 0, 0, 98, 0, 0, 0, 66, -9, -90, 0, 0, 0, 0, 66, -90, -9, 66, 0, -90, -1, -90, 98, 66, -1, 66,
0, 66, -9, -1, -90, -1, -90, 0, 98, 98, 0, 0, 0, 0, -90, -1, 66, 0, 0, 66, -1, -1, 66, 0, 0, 66, -9, -90, 0, 66, -1, 66,
0, -90, -1, -90, -1, -90, -1, 66, 98, 0, 0, 0, 0, 0, -90, -9, 66, 0, 0, -90, -1, 66, 0, 0, 0, 66, -9, -90, 0, 66, -9, 66,
0, -90, -1, 66, -1, -90, -9, -90, 0, 0, 0, 0, 0, 0, -90, -9, 66, 0, 66, -1, -90, 66, 0, 0, 0, 66, -9, -90, 0, -90, -9, 66,
66, -90, -9, 0, -90, -1, -90, -1, 66, 0, 0, 0, 0, 0, -90, -9, 66, 66, -90, -9, 66, 0, 0, 0, 0, -1, -90, 66, 0, -9, -90, 0,
-90, -1, -90, 66, -90, -1, -90, -9, 66, 0, 0, 0, 0, 66, -1, -9, 66, -90, -1, -90, 0, 0, 0, 0, 66, -1, 66, 0, 0, -9, -90, 0,
-90, -1, 66, 0, 66, -1, -90, -9, 66, 0, 0, 0, 0, -90, -9, -90, 0, -90, -1, 66, 0, 0, 0, 0, 66, -9, 66, 0, 0, -1, -90, 0,
-90, -9, 66, 66, 98, -90, -1, -9, 66, 0, 0, 0, 0, -90, -90, 66, 66, -1, -90, 0, 0, 0, 0, 66, -1, -90, 0, 0, 0, -9, -90, 0,
-90, -9, 66, 98, 0, 0, 66, -9, 66, 0, 0, 0, 66, -1, 66, 0, 66, -9, -90, 0, 0, 0, 0, 66, -1, -90, 0, 0, 0, -1, -90, 0 };
struct pattern message5 = {32, 78,message5Data};
PROGMEM const prog_uchar message6Data[] =
{0, 0, 0, 123, 0, 0, 0, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 123, 123, 0, 0, 0, 123, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 123, 0, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 59, 0, 0, 0, 0, 0, 0,
0, 123, 0, 0, 0, 123, 0, 0, 0, 123, 0, 0, 0, 0, 0, 91, 91, 0, 91, 91, 0, 0, 0, 59, 0, 0, 59, 0, 0, 0, 0, 0,
0, 0, 123, 123, 123, 0, 123, 123, 123, 0, 0, 0, 0, 0, 0, 0, -65, 91, -65, 0, 0, 0, 0, 59, 0, 0, 59, 0, 0, 0, 0, 0,
0, 123, 0, 0, 0, 123, 0, 0, 0, 123, 0, 0, 0, 91, 0, 0, 91, -65, 91, 0, 0, 91, 0, 0, 59, 59, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 123, 0, 123, 0, 0, 0, 0, 0, 91, -65, 0, 0, 0, -33, 0, 0, 0, -65, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 123, 123, 0, 0, 0, 123, 123, 0, 0, 91, -65, -33, 91, 0, 91, -65, 91, 0, 91, -33, -65, 91, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 123, 0, 0, 0, 123, 0, 0, 0, 0, 0, 0, 91, 91, -65, -33, -65, 91, -65, 0, 0, 0, 0, 0, 0, 0, 23, 0, 23, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -65, -33, -33, -33, -65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 91, -65, -33, -65, 91, 91, 0, 0, 0, 0, 0, 0, 0, 23, 0, 23, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, -65, -33, 91, 0, 91, -65, 91, 0, 91, -33, -65, 91, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, -65, 0, 0, 0, 91, 0, 0, 0, -65, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 0, 0, 91, -33, 91, 0, 0, 91, 0, 0, 0, 0, 59, 59, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 59, 59, 0, 0, 0, 0, 0, 0, -65, 91, -65, 0, 0, 0, 0, 0, 0, 59, 0, 0, 59, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 59, 0, 0, 59, 0, 0, 0, 0, 91, 91, 0, 91, 91, 0, 0, 0, 0, 0, 59, 0, 0, 59, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 59, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 59, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 59, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 123, 0, 0, 0, 123, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 91, -65, 0, 0, 0, -65, 91, 0, 0, 0, 0, 0, 0, 123, 123, 0, 0, 0, 123, 123, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 91, -65, -33, 0, 0, 0, -33, -65, 91, 0, 0, 0, 0, 0, 0, 0, 123, 0, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 91, -65, 0, 91, 91, 0, 0, 0, 0, 0, 0, 123, 0, 0, 0, 123, 0, 0, 0, 123, 0, 0, 0, 0, 0, 0,
0, 0, 91, 0, 0, 0, 0, 91, -65, 91, 0, 0, 0, 0, 91, 0, 0, 0, 123, 123, 123, 0, 123, 123, 123, 0, 0, 0, 0, 0, 0, 0,
0, 0, 91, -65, 91, 0, 91, -65, -33, -65, 91, 0, 91, -65, 91, 0, 0, 123, 0, 0, 0, 123, 0, 0, 0, 123, 0, 0, 0, 0, 0, 0,
0, 0, 0, 91, -65, -33, -65, -33, -33, -33, -65, 91, -33, 91, 0, 0, 0, 0, 0, 0, 123, 0, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 91, -65, 91, 0, 91, -65, -33, -65, 91, 0, 91, -65, 91, 0, 0, 0, 123, 123, 0, 0, 0, 123, 123, 0, 0, 0, 0, 0, 0, 0,
0, 0, 91, 0, 0, 0, 0, 91, -65, 91, 0, 0, 0, 0, 91, 0, 0, 0, 0, 123, 0, 0, 0, 123, 0, 0, 23, 0, 23, 0, 0, 0,
0, 0, 0, 0, 0, 0, 91, 91, 0, 91, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0,
0, 0, 0, 0, 91, -65, -33, 0, 0, 0, -33, -65, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 23, 0, 0, 0,
0, 0, 0, 0, 0, 91, -65, 0, 0, 0, -65, 91, 0, 0, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 91, -65, 0, 0, 0, -65, 91, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, -65, -33, 0, 0, 0, -33, -65, 91, 0, 0, 0, 0, 0,
0, 59, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, -65, 0, 91, 91, 0, 0, 0, 0, 0, 0, 0,
59, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 0, 91, -65, 91, 0, 0, 0, 0, 91, 0, 0, 0,
59, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, -65, 91, 0, 91, -65, -33, -65, 91, 0, 91, -65, 91, 0, 0, 0,
0, 59, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, -65, -33, -65, -33, -33, -33, -65, 91, -33, 91, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, -65, 91, 0, 91, -65, -33, -65, 91, 0, 91, -65, 91, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 59, 0, 0, 91, 0, 0, 0, 0, 91, -65, 91, 0, 0, 0, 0, 91, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 0, 0, 59, 0, 0, 0, 0, 0, 91, 91, 0, 91, 91, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 23, 0, 23, 0, 0, 0, 59, 0, 0, 59, 0, 0, 0, 91, -65, -33, 0, 0, 0, -33, -65, 91, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 59, 59, 0, 0, 0, 0, 0, 91, -65, 0, 0, 0, -65, 91, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 23, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 91, 91, 0, 91, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, -65, 91, -65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 91, 0, 0, 91, -65, 91, 0, 0, 91, 0, 0, 0, 0, 23, 0, 23, 0, 0, 0, 0, 123, 0, 0, 0, 123, 0, 0,
0, 0, 0, 0, 91, -65, 0, 0, 0, -33, 0, 0, 0, -65, 91, 0, 0, 0, 0, 23, 0, 0, 0, 0, 123, 123, 0, 0, 0, 123, 123, 0,
0, 0, 0, 91, -65, -33, 91, 0, 91, -65, 91, 0, 91, -33, -65, 91, 0, 0, 23, 0, 23, 0, 0, 0, 0, 0, 123, 0, 123, 0, 0, 0,
0, 0, 0, 0, 0, 0, 91, 91, -65, -33, -65, 91, -65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, 0, 0, 0, 123, 0, 0, 0, 123,
0, 0, 0, 0, 0, 0, 0, -65, -33, -33, -33, -65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, 123, 123, 0, 123, 123, 123, 0,
0, 0, 0, 0, 0, 0, 91, 91, -65, -33, -65, 91, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, 0, 0, 0, 123, 0, 0, 0, 123,
0, 0, 0, 91, -65, -33, 91, 0, 91, -65, 91, 0, 91, -33, -65, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, 0, 123, 0, 0, 0,
0, 0, 0, 0, 91, -65, 0, 0, 0, 91, 0, 0, 0, -65, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, 123, 0, 0, 0, 123, 123, 0,
0, 0, 0, 0, 0, 91, 0, 0, 91, -33, 91, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, 0, 0, 0, 123, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, -65, 91, -65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 91, 91, 0, 91, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 59, 0, 0, 0,
0, 0, 0, 0, 0, 59, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 0, 0, 59, 0, 0,
0, 0, 0, 0, 59, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 123, 0, 0, 0, 123, 0, 0, 0, 0, 0, 59, 0, 0, 59, 0, 0,
0, 0, 0, 0, 59, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 123, 123, 0, 0, 0, 123, 123, 0, 0, 0, 0, 0, 59, 59, 0, 0, 0,
0, 0, 0, 0, 0, 59, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, 0, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, 0, 0, 0, 123, 0, 0, 0, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 23, 0, 0, 0, 123, 123, 123, 0, 123, 123, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 123, 0, 0, 0, 123, 0, 0, 0, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 23, 0, 0, 0, 0, 0, 123, 0, 123, 0, 0, 0, 0, 0, 23, 0, 23, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, 123, 0, 0, 0, 123, 123, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, 0, 0, 0, 123, 0, 0, 0, 0, 23, 0, 23, 0, 0, 0, 0 };
struct pattern message6 = {32, 69,message6Data};
PROGMEM prog_uchar bytesA[] ={
B00000000, B00000000, B00000000, B00000000,
B00011111, B11111111, B11100000, B00000000,
B00011111, B11111111, B11110000, B00000000,
B00011111, B11111111, B11110000, B00000000,
B00000000, B01110000, B01111100, B00000000,
B00000000, B01110000, B00011110, B00000000,
B00000000, B01110000, B00011111, B00000000,
B00000000, B01110000, B00001111, B10000000,
B00000000, B01110000, B00001111, B10000000,
B00000000, B01110000, B00001111, B10000000,
B00000000, B01110000, B00011111, B00000000,
B00000000, B01110000, B00011100, B00000000,
B00000000, B01110000, B01111100, B00000000,
B00011111, B11111111, B11110000, B00000000,
B00011111, B11111111, B11110000, B00000000,
B00011111, B11111111, B11100000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
};
struct pattern messageA = {4, 19, bytesA};
PROGMEM prog_uchar bytesB[] ={
B00000000, B00000000, B00000000, B00000000,
B00011111, B11111111, B11111111, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011111, B00011111, B10000111, B10000000,
B00000111, B11111111, B11111111, B00000000,
B00000111, B11111111, B11111111, B00000000,
B00000011, B11110000, B11111100, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
};
struct pattern messageB = {4, 19, bytesB};
PROGMEM prog_uchar bytesC[] ={
B00000000, B00000000, B00000000, B00000000,
B00000011, B11111111, B11111100, B00000000,
B00000111, B11111111, B11111111, B00000000,
B00000111, B11111111, B11111111, B00000000,
B00011111, B00000000, B00000111, B10000000,
B00011100, B00000000, B00000011, B10000000,
B00011100, B00000000, B00000011, B10000000,
B00011100, B00000000, B00000011, B10000000,
B00011100, B00000000, B00000011, B10000000,
B00011100, B00000000, B00000011, B10000000,
B00011100, B00000000, B00000011, B10000000,
B00011100, B00000000, B00000011, B10000000,
B00011111, B00000000, B00001111, B10000000,
B00000111, B10000000, B00011111, B00000000,
B00000111, B10000000, B00011111, B00000000,
B00000011, B10000000, B00011100, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
};
struct pattern messageC = {4, 19, bytesC};
PROGMEM prog_uchar bytesD[] ={
B00000000, B00000000, B00000000, B00000000,
B00011111, B11111111, B11111111, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00011100, B00000000, B00000011, B10000000,
B00011100, B00000000, B00000011, B10000000,
B00011100, B00000000, B00000011, B10000000,
B00011100, B00000000, B00000011, B10000000,
B00011100, B00000000, B00000011, B10000000,
B00011100, B00000000, B00000011, B10000000,
B00011100, B00000000, B00000011, B10000000,
B00011110, B00000000, B00000011, B10000000,
B00011111, B00000000, B00000111, B10000000,
B00000111, B11111111, B11111111, B00000000,
B00000111, B11111111, B11111111, B00000000,
B00000011, B11111111, B11111100, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
};
struct pattern messageD = {4, 19, bytesD};
PROGMEM prog_uchar bytesE[] ={
B00000000, B00000000, B00000000, B00000000,
B00011111, B11111111, B11111111, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000000, B00000011, B10000000,
B00011100, B00000000, B00000011, B10000000,
B00011100, B00000000, B00000011, B10000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
};
struct pattern messageE = {4, 19, bytesE};
PROGMEM prog_uchar bytesF[] ={
B00000000, B00000000, B00000000, B00000000,
B00011111, B11111111, B11111111, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00000000, B00000111, B00000011, B10000000,
B00000000, B00000111, B00000011, B10000000,
B00000000, B00000111, B00000011, B10000000,
B00000000, B00000111, B00000011, B10000000,
B00000000, B00000111, B00000011, B10000000,
B00000000, B00000111, B00000011, B10000000,
B00000000, B00000111, B00000011, B10000000,
B00000000, B00000111, B00000011, B10000000,
B00000000, B00000111, B00000011, B10000000,
B00000000, B00000000, B00000011, B10000000,
B00000000, B00000000, B00000011, B10000000,
B00000000, B00000000, B00000011, B10000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
};
struct pattern messageF = {4, 19, bytesF};
PROGMEM prog_uchar bytesG[] ={
B00000000, B00000000, B00000000, B00000000,
B00000011, B11111111, B11111100, B00000000,
B00000111, B11111111, B11111111, B00000000,
B00000111, B11111111, B11111111, B00000000,
B00011111, B00000000, B00000111, B10000000,
B00011100, B00000000, B00000011, B10000000,
B00011100, B00000000, B00000011, B10000000,
B00011100, B00000000, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011110, B00000111, B00000011, B10000000,
B00011111, B00000111, B00000111, B10000000,
B00000111, B11111111, B00011111, B00000000,
B00000011, B11111111, B00011111, B00000000,
B00000011, B11111111, B00011100, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
};
struct pattern messageG = {4, 19, bytesG};
PROGMEM prog_uchar bytesH[] ={
B00000000, B00000000, B00000000, B00000000,
B00011111, B11111111, B11111111, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00000000, B00000111, B00000000, B00000000,
B00000000, B00000111, B00000000, B00000000,
B00000000, B00000111, B00000000, B00000000,
B00000000, B00000111, B00000000, B00000000,
B00000000, B00000111, B00000000, B00000000,
B00000000, B00000111, B00000000, B00000000,
B00000000, B00000111, B00000000, B00000000,
B00000000, B00000111, B00000000, B00000000,
B00000000, B00000111, B00000000, B00000000,
B00011111, B11111111, B11111111, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
};
struct pattern messageH = {4, 19, bytesH};
PROGMEM prog_uchar bytesI[] ={
B00000000, B00000000, B00000000, B00000000,
B00011100, B00000000, B00000011, B10000000,
B00011100, B00000000, B00000011, B10000000,
B00011100, B00000000, B00000011, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00011100, B00000000, B00000011, B10000000,
B00011100, B00000000, B00000011, B10000000,
B00011100, B00000000, B00000011, B10000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
};
struct pattern messageI = {4, 16, bytesI};
PROGMEM prog_uchar bytesJ[] ={
B00000000, B00000000, B00000000, B00000000,
B00000011, B10000000, B00000000, B00000000,
B00000111, B10000000, B00000000, B00000000,
B00000111, B10000000, B00000000, B00000000,
B00011111, B00000000, B00000000, B00000000,
B00011100, B00000000, B00000000, B00000000,
B00011100, B00000000, B00000000, B00000000,
B00011100, B00000000, B00000011, B10000000,
B00011110, B00000000, B00000011, B10000000,
B00011111, B00000000, B00000011, B10000000,
B00000111, B11111111, B11111111, B10000000,
B00000011, B11111111, B11111111, B10000000,
B00000011, B11111111, B11111111, B10000000,
B00000000, B00000000, B00000011, B10000000,
B00000000, B00000000, B00000011, B10000000,
B00000000, B00000000, B00000011, B10000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
};
struct pattern messageJ = {4, 19, bytesJ};
PROGMEM prog_uchar bytesK[] ={
B00000000, B00000000, B00000000, B00000000,
B00011111, B11111111, B11111111, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00000000, B00000111, B00000000, B00000000,
B00000000, B00011111, B10000000, B00000000,
B00000000, B00011111, B10000000, B00000000,
B00000000, B00111111, B11100000, B00000000,
B00000000, B11111001, B11110000, B00000000,
B00000000, B11111001, B11110000, B00000000,
B00000011, B11100000, B01111100, B00000000,
B00000011, B10000000, B00011100, B00000000,
B00001111, B10000000, B00011111, B00000000,
B00011111, B00000000, B00001111, B10000000,
B00011110, B00000000, B00001111, B10000000,
B00011100, B00000000, B00000011, B10000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
};
struct pattern messageK = {4, 19, bytesK};
PROGMEM prog_uchar bytesL[] ={
B00000000, B00000000, B00000000, B00000000,
B00011111, B11111111, B11111111, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00011100, B00000000, B00000000, B00000000,
B00011100, B00000000, B00000000, B00000000,
B00011100, B00000000, B00000000, B00000000,
B00011100, B00000000, B00000000, B00000000,
B00011100, B00000000, B00000000, B00000000,
B00011100, B00000000, B00000000, B00000000,
B00011100, B00000000, B00000000, B00000000,
B00011100, B00000000, B00000000, B00000000,
B00011100, B00000000, B00000000, B00000000,
B00011100, B00000000, B00000000, B00000000,
B00011100, B00000000, B00000000, B00000000,
B00011100, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
};
struct pattern messageL = {4, 19, bytesL};
PROGMEM prog_uchar bytesM[] ={
B00000000, B00000000, B00000000, B00000000,
B00011111, B11111111, B11111111, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00000000, B00000000, B01111100, B00000000,
B00000000, B00000000, B11110000, B00000000,
B00000000, B00000001, B11110000, B00000000,
B00000000, B00000111, B11100000, B00000000,
B00000000, B00000111, B11100000, B00000000,
B00000000, B00000111, B11100000, B00000000,
B00000000, B00000001, B11110000, B00000000,
B00000000, B00000000, B01110000, B00000000,
B00000000, B00000000, B01111100, B00000000,
B00011111, B11111111, B11111111, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
};
struct pattern messageM = {4, 19, bytesM};
PROGMEM prog_uchar bytesN[] ={
B00000000, B00000000, B00000000, B00000000,
B00011111, B11111111, B11111111, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00000000, B00000001, B11110000, B00000000,
B00000000, B00000011, B11100000, B00000000,
B00000000, B00000011, B11100000, B00000000,
B00000000, B00000111, B10000000, B00000000,
B00000000, B00011111, B00000000, B00000000,
B00000000, B00011111, B00000000, B00000000,
B00000000, B01111100, B00000000, B00000000,
B00000000, B01111000, B00000000, B00000000,
B00000000, B11111000, B00000000, B00000000,
B00011111, B11111111, B11111111, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
};
struct pattern messageN = {4, 19, bytesN};
PROGMEM prog_uchar bytesO[] ={
B00000000, B00000000, B00000000, B00000000,
B00000011, B11111111, B11111100, B00000000,
B00000111, B11111111, B11111111, B00000000,
B00000111, B11111111, B11111111, B00000000,
B00011111, B00000000, B00000111, B10000000,
B00011100, B00000000, B00000011, B10000000,
B00011100, B00000000, B00000011, B10000000,
B00011100, B00000000, B00000011, B10000000,
B00011100, B00000000, B00000011, B10000000,
B00011100, B00000000, B00000011, B10000000,
B00011100, B00000000, B00000011, B10000000,
B00011110, B00000000, B00000011, B10000000,
B00011111, B00000000, B00000111, B10000000,
B00000111, B11111111, B11111111, B00000000,
B00000111, B11111111, B11111111, B00000000,
B00000011, B11111111, B11111100, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
};
struct pattern messageO = {4, 19, bytesO};
PROGMEM prog_uchar bytesP[] ={
B00000000, B00000000, B00000000, B00000000,
B00011111, B11111111, B11111111, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00000000, B00000111, B00000011, B10000000,
B00000000, B00000111, B00000011, B10000000,
B00000000, B00000111, B00000011, B10000000,
B00000000, B00000111, B00000011, B10000000,
B00000000, B00000111, B00000011, B10000000,
B00000000, B00000111, B00000011, B10000000,
B00000000, B00000111, B00000011, B10000000,
B00000000, B00000111, B00000011, B10000000,
B00000000, B00000111, B10000111, B10000000,
B00000000, B00000011, B11111110, B00000000,
B00000000, B00000011, B11111110, B00000000,
B00000000, B00000000, B11111100, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
};
struct pattern messageP = {4, 19, bytesP};
PROGMEM prog_uchar bytesQ[] ={
B00000000, B00000000, B00000000, B00000000,
B00000011, B11111111, B11111100, B00000000,
B00001111, B11111111, B11111110, B00000000,
B00001111, B11111111, B11111110, B00000000,
B00011111, B00000000, B00001111, B10000000,
B00011100, B00000000, B00000011, B10000000,
B00011100, B00000000, B00000011, B10000000,
B00011100, B01110000, B00000011, B10000000,
B00011100, B11110000, B00000011, B10000000,
B00011100, B11110000, B00000011, B10000000,
B00001111, B11000000, B00000011, B10000000,
B00001111, B10000000, B00000011, B10000000,
B00001111, B10000000, B00001111, B10000000,
B00011111, B11111111, B11111110, B00000000,
B00011111, B11111111, B11111110, B00000000,
B00011100, B11111111, B11111100, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
};
struct pattern messageQ = {4, 19, bytesQ};
PROGMEM prog_uchar bytesR[] ={
B00000000, B00000000, B00000000, B00000000,
B00011111, B11111111, B11111111, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00000000, B00000111, B00000011, B10000000,
B00000000, B00011111, B00000011, B10000000,
B00000000, B00011111, B00000011, B10000000,
B00000000, B01111111, B00000011, B10000000,
B00000000, B11111111, B00000011, B10000000,
B00000000, B11111111, B00000011, B10000000,
B00000011, B11100111, B00000011, B10000000,
B00000011, B10000111, B00000011, B10000000,
B00001111, B10000111, B10000111, B10000000,
B00011111, B00000011, B11111110, B00000000,
B00011110, B00000011, B11111110, B00000000,
B00011100, B00000000, B11111100, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
};
struct pattern messageR = {4, 19, bytesR};
PROGMEM prog_uchar bytesS[] ={
B00000000, B00000000, B00000000, B00000000,
B00000011, B10000000, B11111100, B00000000,
B00000111, B10000011, B11111110, B00000000,
B00001111, B10000011, B11111111, B00000000,
B00011111, B00000111, B10000111, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011110, B00000111, B00000011, B10000000,
B00011111, B00011111, B00000111, B10000000,
B00000111, B11111100, B00011110, B00000000,
B00000011, B11111000, B00011110, B00000000,
B00000011, B11110000, B00011100, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
};
struct pattern messageS = {4, 19, bytesS};
PROGMEM prog_uchar bytesT[] ={
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000011, B10000000,
B00000000, B00000000, B00000011, B10000000,
B00000000, B00000000, B00000011, B10000000,
B00000000, B00000000, B00000011, B10000000,
B00000000, B00000000, B00000011, B10000000,
B00000000, B00000000, B00000011, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00000000, B00000000, B00000011, B10000000,
B00000000, B00000000, B00000011, B10000000,
B00000000, B00000000, B00000011, B10000000,
B00000000, B00000000, B00000011, B10000000,
B00000000, B00000000, B00000011, B10000000,
B00000000, B00000000, B00000011, B10000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
};
struct pattern messageT = {4, 19, bytesT};
PROGMEM prog_uchar bytesU[] ={
B00000000, B00000000, B00000000, B00000000,
B00000011, B11111111, B11111111, B10000000,
B00000111, B11111111, B11111111, B10000000,
B00000111, B11111111, B11111111, B10000000,
B00011110, B00000000, B00000000, B00000000,
B00011100, B00000000, B00000000, B00000000,
B00011100, B00000000, B00000000, B00000000,
B00011100, B00000000, B00000000, B00000000,
B00011100, B00000000, B00000000, B00000000,
B00011100, B00000000, B00000000, B00000000,
B00011100, B00000000, B00000000, B00000000,
B00011100, B00000000, B00000000, B00000000,
B00011110, B00000000, B00000000, B00000000,
B00000111, B11111111, B11111111, B10000000,
B00000111, B11111111, B11111111, B10000000,
B00000011, B11111111, B11111111, B10000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
};
struct pattern messageU = {4, 19, bytesU};
PROGMEM prog_uchar bytesV[] ={
B00000000, B00000000, B00000000, B00000000,
B00000000, B01111111, B11111111, B10000000,
B00000000, B11111111, B11111111, B10000000,
B00000000, B11111111, B11111111, B10000000,
B00000011, B11100000, B00000000, B00000000,
B00000111, B10000000, B00000000, B00000000,
B00001111, B10000000, B00000000, B00000000,
B00011111, B00000000, B00000000, B00000000,
B00011111, B00000000, B00000000, B00000000,
B00011111, B00000000, B00000000, B00000000,
B00001111, B10000000, B00000000, B00000000,
B00000011, B10000000, B00000000, B00000000,
B00000011, B11100000, B00000000, B00000000,
B00000000, B11111111, B11111111, B10000000,
B00000000, B11111111, B11111111, B10000000,
B00000000, B01111111, B11111111, B10000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
};
struct pattern messageV = {4, 19, bytesV};
PROGMEM prog_uchar bytesW[] ={
B00000000, B00000000, B00000000, B00000000,
B00000011, B11111111, B11111111, B10000000,
B00000111, B11111111, B11111111, B10000000,
B00000111, B11111111, B11111111, B10000000,
B00011111, B00000000, B00000000, B00000000,
B00011111, B00000000, B00000000, B00000000,
B00011111, B00000000, B00000000, B00000000,
B00000111, B11111111, B00000000, B00000000,
B00000111, B11111111, B00000000, B00000000,
B00000111, B11111111, B00000000, B00000000,
B00011111, B00000000, B00000000, B00000000,
B00011111, B00000000, B00000000, B00000000,
B00011111, B00000000, B00000000, B00000000,
B00000111, B11111111, B11111111, B10000000,
B00000111, B11111111, B11111111, B10000000,
B00000011, B11111111, B11111111, B10000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
};
struct pattern messageW = {4, 19, bytesW};
PROGMEM prog_uchar bytesX[] ={
B00000000, B00000000, B00000000, B00000000,
B00011111, B10000000, B00011111, B10000000,
B00011111, B11100000, B00111111, B10000000,
B00011111, B11100000, B01111111, B10000000,
B00000000, B11111001, B11110000, B00000000,
B00000000, B01111111, B11100000, B00000000,
B00000000, B00111111, B11100000, B00000000,
B00000000, B00011111, B10000000, B00000000,
B00000000, B00011111, B10000000, B00000000,
B00000000, B00011111, B10000000, B00000000,
B00000000, B00111111, B11100000, B00000000,
B00000000, B01111001, B11100000, B00000000,
B00000000, B11111001, B11110000, B00000000,
B00011111, B11100000, B01111111, B10000000,
B00011111, B11100000, B00111111, B10000000,
B00011111, B10000000, B00011111, B10000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
};
struct pattern messageX = {4, 19, bytesX};
PROGMEM prog_uchar bytesY[] ={
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B11111111, B10000000,
B00000000, B00000011, B11111111, B10000000,
B00000000, B00000011, B11111111, B10000000,
B00000000, B00001111, B10000000, B00000000,
B00000000, B00011111, B00000000, B00000000,
B00000000, B00011110, B00000000, B00000000,
B00011111, B11111100, B00000000, B00000000,
B00011111, B11111100, B00000000, B00000000,
B00011111, B11111100, B00000000, B00000000,
B00000000, B00011111, B00000000, B00000000,
B00000000, B00001111, B00000000, B00000000,
B00000000, B00001111, B10000000, B00000000,
B00000000, B00000011, B11111111, B10000000,
B00000000, B00000001, B11111111, B10000000,
B00000000, B00000000, B11111111, B10000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
};
struct pattern messageY = {4, 19, bytesY};
PROGMEM prog_uchar bytesZ[] ={
B00000000, B00000000, B00000000, B00000000,
B00011111, B10000000, B00000011, B10000000,
B00011111, B11100000, B00000011, B10000000,
B00011111, B11100000, B00000011, B10000000,
B00011100, B11111000, B00000011, B10000000,
B00011100, B01111100, B00000011, B10000000,
B00011100, B00111100, B00000011, B10000000,
B00011100, B00011111, B00000011, B10000000,
B00011100, B00000111, B10000011, B10000000,
B00011100, B00000111, B10000011, B10000000,
B00011100, B00000011, B11100011, B10000000,
B00011100, B00000001, B11100011, B10000000,
B00011100, B00000001, B11110011, B10000000,
B00011100, B00000000, B01111111, B10000000,
B00011100, B00000000, B01111111, B10000000,
B00011100, B00000000, B00011111, B10000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
};
struct pattern messageZ = {4, 19, bytesZ};
PROGMEM prog_uchar bytesa[] ={
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000011, B11111100, B00000000, B00000000,
B00001111, B11111111, B00011111, B11000000,
B00011110, B00000011, B11111000, B11100000,
B00011100, B00000000, B11100000, B00110000,
B00011000, B00000001, B11000000, B00110000,
B00011000, B00000011, B11000000, B00110000,
B00011000, B00001110, B00110000, B01110000,
B00001100, B00111100, B00011111, B11100000,
B00000110, B01110000, B00000111, B10000000,
B00000011, B11100000, B00000000, B00000000,
B00000011, B11111111, B11000000, B00000000,
B00001111, B00001111, B11000000, B00000000,
B00011100, B00000000, B00000000, B00000000,
B00011000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
};
struct pattern messagea = {4, 19, bytesa};
PROGMEM prog_uchar bytesNum1[] ={
B00000000, B00000000, B00000000, B00000000,
B00011100, B00000000, B00011100, B00000000,
B00011100, B00000000, B00011110, B00000000,
B00011100, B00000000, B00011110, B00000000,
B00011111, B11111111, B11111111, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00011100, B00000000, B00000000, B00000000,
B00011100, B00000000, B00000000, B00000000,
B00011100, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
};
struct pattern messageNum1 = {4, 16, bytesNum1};
PROGMEM prog_uchar bytesNum2[] ={
B00000000, B00000000, B00000000, B00000000,
B00011111, B11111000, B00011100, B00000000,
B00011111, B11111100, B00011110, B00000000,
B00011111, B11111100, B00011111, B00000000,
B00011100, B00011111, B00000111, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B10000111, B10000000,
B00011100, B00000011, B11111110, B00000000,
B00011100, B00000011, B11111110, B00000000,
B00011100, B00000000, B11111100, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
};
struct pattern messageNum2 = {4, 19, bytesNum2};
PROGMEM prog_uchar bytesNum3[] ={
B00000000, B00000000, B00000000, B00000000,
B00000011, B10000000, B00011100, B00000000,
B00000111, B10000000, B00011111, B00000000,
B00000111, B10000000, B00011111, B00000000,
B00011111, B00000000, B00000111, B10000000,
B00011100, B00000000, B00000011, B10000000,
B00011100, B00000000, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011111, B00011111, B10000111, B10000000,
B00000111, B11111111, B11111111, B00000000,
B00000111, B11111101, B11111111, B00000000,
B00000011, B11110000, B11111100, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
};
struct pattern messageNum3 = {4, 19, bytesNum3};
PROGMEM prog_uchar bytesNum4[] ={
B00000000, B00000000, B00000000, B00000000,
B00000000, B01111110, B00000000, B00000000,
B00000000, B01111111, B10000000, B00000000,
B00000000, B01111111, B10000000, B00000000,
B00000000, B01110011, B11100000, B00000000,
B00000000, B01110001, B11110000, B00000000,
B00000000, B01110000, B11110000, B00000000,
B00000000, B01110000, B01111100, B00000000,
B00000000, B01110000, B00011110, B00000000,
B00000000, B01110000, B00011111, B00000000,
B00011111, B11111111, B11111111, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00011111, B11111111, B11111111, B10000000,
B00000000, B01110000, B00000000, B00000000,
B00000000, B01110000, B00000000, B00000000,
B00000000, B01110000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
};
struct pattern messageNum4 = {4, 19, bytesNum4};
PROGMEM prog_uchar bytesNum5[] ={
B00000000, B00000000, B00000000, B00000000,
B00000011, B10000000, B11111111, B10000000,
B00000111, B10000000, B11111111, B10000000,
B00001111, B10000000, B11111111, B10000000,
B00011111, B00000000, B11100011, B10000000,
B00011100, B00000000, B11100011, B10000000,
B00011100, B00000000, B11100011, B10000000,
B00011100, B00000000, B11100011, B10000000,
B00011100, B00000000, B11100011, B10000000,
B00011100, B00000000, B11100011, B10000000,
B00011100, B00000000, B11100011, B10000000,
B00011100, B00000000, B11100011, B10000000,
B00011111, B00000011, B11100011, B10000000,
B00001111, B11111111, B10000011, B10000000,
B00000111, B11111111, B10000011, B10000000,
B00000011, B11111111, B00000011, B10000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
};
struct pattern messageNum5 = {4, 19, bytesNum5};
PROGMEM prog_uchar bytesNum6[] ={
B00000000, B00000000, B00000000, B00000000,
B00000011, B11111111, B11111100, B00000000,
B00000111, B11111111, B11111110, B00000000,
B00001111, B11111111, B11111111, B00000000,
B00011111, B00000111, B00000111, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011111, B00011111, B00000111, B10000000,
B00000111, B11111100, B00011110, B00000000,
B00000011, B11111100, B00011110, B00000000,
B00000011, B11110000, B00011100, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
};
struct pattern messageNum6 = {4, 19, bytesNum6};
PROGMEM prog_uchar bytesNum7[] ={
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000011, B10000000,
B00000000, B00000000, B00000011, B10000000,
B00000000, B00000000, B00000011, B10000000,
B00000000, B00000000, B00000011, B10000000,
B00000000, B00000000, B00000011, B10000000,
B00000000, B00000000, B00000011, B10000000,
B00011111, B11111100, B00000011, B10000000,
B00011111, B11111110, B00000011, B10000000,
B00011111, B11111110, B00000011, B10000000,
B00000000, B00001111, B10000011, B10000000,
B00000000, B00000011, B10000011, B10000000,
B00000000, B00000011, B11100011, B10000000,
B00000000, B00000000, B11111111, B10000000,
B00000000, B00000000, B11111111, B10000000,
B00000000, B00000000, B01111111, B10000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
};
struct pattern messageNum7 = {4, 19, bytesNum7};
PROGMEM prog_uchar bytesNum8[] ={
B00000000, B00000000, B00000000, B00000000,
B00000011, B11110000, B11111100, B00000000,
B00000111, B11111111, B11111111, B00000000,
B00000111, B11111111, B11111111, B00000000,
B00011111, B00011111, B10000111, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011111, B00011111, B10000111, B10000000,
B00000111, B11111111, B11111111, B00000000,
B00000111, B11111111, B11111111, B00000000,
B00000011, B11110000, B11111100, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
};
struct pattern messageNum8 = {4, 19, bytesNum8};
PROGMEM prog_uchar bytesNum9[] ={
B00000000, B00000000, B00000000, B00000000,
B00000011, B10000000, B11111100, B00000000,
B00000111, B10000001, B11111111, B00000000,
B00000111, B10000011, B11111111, B00000000,
B00011111, B00000111, B10000111, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000011, B10000000,
B00011100, B00000111, B00000111, B10000000,
B00011111, B00000111, B00000111, B10000000,
B00000111, B11111111, B11111111, B00000000,
B00000111, B11111111, B11111111, B00000000,
B00000011, B11111111, B11111100, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
};
struct pattern messageNum9 = {4, 19, bytesNum9};
PROGMEM prog_uchar bytesNum0[] ={
B00000000, B00000000, B00000000, B00000000,
B00000011, B11111111, B11111100, B00000000,
B00000111, B11111111, B11111111, B00000000,
B00000111, B11111111, B11111111, B00000000,
B00011110, B01110000, B00000111, B10000000,
B00011100, B01111100, B00000011, B10000000,
B00011100, B01111100, B00000011, B10000000,
B00011100, B00011111, B00000011, B10000000,
B00011100, B00001111, B10000011, B10000000,
B00011100, B00001111, B10000011, B10000000,
B00011100, B00000011, B11100011, B10000000,
B00011100, B00000000, B11100011, B10000000,
B00011110, B00000000, B11100111, B10000000,
B00000111, B11111111, B11111111, B00000000,
B00000111, B11111111, B11111111, B00000000,
B00000011, B11111111, B11111100, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
B00000000, B00000000, B00000000, B00000000,
};
struct pattern messageNum0 = {4, 19, bytesNum0};
void setup() {
Serial.begin(9600);
// INITIALIZE TIMER INTERRUPTS
TCCR0A = (1<<WGM01); //Timer in CTC mode
TCCR0B = ((1<<CS01)|(1<<CS00)); //1:64 prescaler
OCR0A = 249; //Value to have an compare at every 1ms
TIMSK0 = (1<<OCIE0A); //Enable timer interrupts
sei(); //Enable global interrupts
LEDS.addLeds<WS2811, PIN, GRB>(leds, NUM_LEDS);
LEDS.setBrightness( BRIGHTNESS );
////////colour pallett code here:
currentPalette = RainbowStripeColors_p;
currentBlending = BLEND;
//eeprom read/set code here.
// DISABLING EEPROM FOR NOW JUST USING 0 - TIMER
//eeprom_option = EEPROM.read(eeprom_address);
// eeprom_option = eeprom_option + 1;
// if (eeprom_option == 9)
eeprom_option = 0;
// EEPROM.write(eeprom_address, eeprom_option);
}
// TIMER VECTOR, gets called once a millisecond (depends on prescaler and match register)
ISR(TIMER0_COMPA_vect){
/* Reload the timer */
// do timing based stuff here
millisecs++;
switch(millisecs){
case 100:
variable = 4;
return;
break;
case 4394:
variable = 5;
return;
break;
case 7658:
variable = 6;
return;
break;
case 10794:
variable = 3;
return;
break;
case 14485:
variable = 7;
return;
break;
case 18880:
variable = 8;
return;
break;
case 24469:
variable = 9;
return;
break;
case 29184:
variable = 1;
return;
break;
case 31680:
variable = 2;
return;
break;
case 34986:
variable = 1;
return;
break;
case 37674:
variable = 2;
return;
break;
case 40469:
variable = 8;
return;
break;
case 44074:
variable = 9;
return;
break;
case 47488:
variable = 2;
return;
break;
case 49706:
variable = 3;
return;
break;
case 52800:
variable = 1;
return;
break;
case 55957:
variable = 7;
return;
break;
case 60010:
variable = 2;
return;
break;
case 66176:
variable = 8;
return;
break;
case 72192:
variable = 1;
return;
break;
case 80192:
millisecs = 0;
return;
break;
//continuous pattern mode
}
}
void loop()
{
PROGMEM const prog_uchar *rgbx;
struct pattern *pat;
switch(eeprom_option){
case 0:
{
//////////////////////////////////////////////actions////////////////////////////////////////////
switch(variable){
case 0:
break;
case 1:
{
pat = &message1;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
byte R1 = (pgm_read_byte_near(rgbx++) & 0xE0);
leds[i].r = R1 / 5; // /5 to bring brightness down
byte G1 = ((pgm_read_byte_near(rgbx) << 3) & 0xE0);
leds[i].g = G1 / 5;
byte M1 = (pgm_read_byte_near(rgbx) << 6);
leds[i].b = M1 / 5;
}
LEDS.show();
//delay(1);
}
break;
}
case 2:
{
pat = &message2;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
byte R1 = (pgm_read_byte_near(rgbx++) & 0xE0);
leds[i].r = R1 / 5; // /5 to bring brightness down
byte G1 = ((pgm_read_byte_near(rgbx) << 3) & 0xE0);
leds[i].g = G1 / 5;
byte M1 = (pgm_read_byte_near(rgbx) << 6);
leds[i].b = M1 / 5;
}
LEDS.show();
//delay(1);
}
break;
}
case 3:
{
pat = &message3;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
byte R1 = (pgm_read_byte_near(rgbx++) & 0xE0);
leds[i].r = R1 / 5; // /5 to bring brightness down
byte G1 = ((pgm_read_byte_near(rgbx) << 3) & 0xE0);
leds[i].g = G1 / 5;
byte M1 = (pgm_read_byte_near(rgbx) << 6);
leds[i].b = M1 / 5;
}
LEDS.show();
//delay(1);
}
break;
}
case 4:
{
pat = &message4;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
byte R1 = (pgm_read_byte_near(rgbx++) & 0xE0);
leds[i].r = R1 / 5; // /5 to bring brightness down
byte G1 = ((pgm_read_byte_near(rgbx) << 3) & 0xE0);
leds[i].g = G1 / 5;
byte M1 = (pgm_read_byte_near(rgbx) << 6);
leds[i].b = M1 / 5;
}
LEDS.show();
//delay(1);
}
break;
}
case 5:
{
pat = &message5;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
byte R1 = (pgm_read_byte_near(rgbx++) & 0xE0);
leds[i].r = R1 / 5; // /5 to bring brightness down
byte G1 = ((pgm_read_byte_near(rgbx) << 3) & 0xE0);
leds[i].g = G1 / 5;
byte M1 = (pgm_read_byte_near(rgbx) << 6);
leds[i].b = M1 / 5;
}
LEDS.show();
//delay(1);
}
break;
}
case 6:
{
pat = &message5;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
byte R1 = (pgm_read_byte_near(rgbx++) & 0xE0);
leds[i].r = R1 / 5; // /5 to bring brightness down
byte G1 = ((pgm_read_byte_near(rgbx) << 3) & 0xE0);
leds[i].g = G1 / 5;
byte M1 = (pgm_read_byte_near(rgbx) << 6);
leds[i].b = M1 / 5;
}
LEDS.show();
//delay(1);
}
break;
}
case 7:
{
for (int a = 0; a < 10; a++){
pat = &messageN;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
setByte(pgm_read_byte_near(rgbx++));
}
FastLED.show();
}
pat = &messageE;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
setByte(pgm_read_byte_near(rgbx++));
}
FastLED.show();
}
pat = &messageW;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
setByte(pgm_read_byte_near(rgbx++));
}
FastLED.show();
}
showBigGap();
} //end for loop to show word multiple times
for (int a = 0; a < 10; a++){
pat = &messageY;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
setByte(pgm_read_byte_near(rgbx++));
}
FastLED.show();
}
pat = &messageE;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
setByte(pgm_read_byte_near(rgbx++));
}
FastLED.show();
}
pat = &messageA;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
setByte(pgm_read_byte_near(rgbx++));
}
FastLED.show();
}
pat = &messageR;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
setByte(pgm_read_byte_near(rgbx++));
}
FastLED.show();
}
pat = &messageS;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
setByte(pgm_read_byte_near(rgbx++));
}
FastLED.show();
}
showBigGap();
} //end for loop to show word multiple times
for (int a = 0; a < 10; a++){
pat = &messageNum2;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
setByte(pgm_read_byte_near(rgbx++));
}
FastLED.show();
}
pat = &messageNum0;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
setByte(pgm_read_byte_near(rgbx++));
}
FastLED.show();
}
pat = &messageNum1;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
setByte(pgm_read_byte_near(rgbx++));
}
FastLED.show();
}
pat = &messageNum6;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
setByte(pgm_read_byte_near(rgbx++));
}
FastLED.show();
}
showBigGap();
} //end for loop to show word multiple times
break;
}
case 8:
{
for (int a = 0; a < 10; a++){
pat = &messageS;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
setByte(pgm_read_byte_near(rgbx++));
}
FastLED.show();
}
pat = &messageU;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
setByte(pgm_read_byte_near(rgbx++));
}
FastLED.show();
}
pat = &messageN;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
setByte(pgm_read_byte_near(rgbx++));
}
FastLED.show();
}
pat = &messageC;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
setByte(pgm_read_byte_near(rgbx++));
}
FastLED.show();
}
pat = &messageO;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
setByte(pgm_read_byte_near(rgbx++));
}
FastLED.show();
}
pat = &messageA;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
setByte(pgm_read_byte_near(rgbx++));
}
FastLED.show();
}
pat = &messageS;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
setByte(pgm_read_byte_near(rgbx++));
}
FastLED.show();
}
pat = &messageT;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
setByte(pgm_read_byte_near(rgbx++));
}
FastLED.show();
}
showBigGap();
} //end for loop to show word multiple times
break;
}
case 9:
{
for (int a = 0; a < 10; a++){
pat = &messageF;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
setByte(pgm_read_byte_near(rgbx++));
}
FastLED.show();
}
pat = &messageE;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
setByte(pgm_read_byte_near(rgbx++));
}
FastLED.show();
}
pat = &messageE;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
setByte(pgm_read_byte_near(rgbx++));
}
FastLED.show();
}
pat = &messageL;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
setByte(pgm_read_byte_near(rgbx++));
}
FastLED.show();
}
showBigGap();
} //end for loop to show word multiple times
for (int a = 0; a < 10; a++){
pat = &messageT;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
setByte(pgm_read_byte_near(rgbx++));
}
FastLED.show();
}
pat = &messageH;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
setByte(pgm_read_byte_near(rgbx++));
}
FastLED.show();
}
pat = &messageE;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
setByte(pgm_read_byte_near(rgbx++));
}
FastLED.show();
}
showBigGap();
} //end for loop to show word multiple times
for (int a = 0; a < 10; a++){
pat = &messageB;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
setByte(pgm_read_byte_near(rgbx++));
}
FastLED.show();
}
pat = &messageE;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
setByte(pgm_read_byte_near(rgbx++));
}
FastLED.show();
}
pat = &messageA;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
setByte(pgm_read_byte_near(rgbx++));
}
FastLED.show();
}
pat = &messageT;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
setByte(pgm_read_byte_near(rgbx++));
}
FastLED.show();
}
showBigGap();
} //end for loop to show word multiple times
break;
}
/////////////////////////////////////////////end actions///////////////////////////////////////////
}
break;
}
/////////////////////////////CYLON////////////////
case 1:
{
//cli(); //does this do anything???
// First slide the led in one direction
for(int i = 0; i < NUM_LEDS; i++) {
// Set the i'th led to red
leds[i] = CRGB::Red;
// Show the leds
LEDS.show();
// now that we've shown the leds, reset the i'th led to black
leds[i] = CRGB::Black;
// Wait a little bit before we loop around and do it again
delay(10);
}
// Now go in the other direction.
for(int i = NUM_LEDS-1; i >= 0; i--) {
// Set the i'th led to red
leds[i] = CRGB::Red;
// Show the leds
LEDS.show();
// now that we've shown the leds, reset the i'th led to black
leds[i] = CRGB::Black;
// Wait a little bit before we loop around and do it again
delay(10);
}
break;
}
/////////////////////3rd Eeprom option...Shows all 6 pics!///////////////////
case 2:
{
//cli(); //does this do anything???
pat = &message1;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
byte R1 = (pgm_read_byte_near(rgbx++) & 0xE0);
leds[i].r = R1 / 5; // /5 to bring brightness down
byte G1 = ((pgm_read_byte_near(rgbx) << 3) & 0xE0);
leds[i].g = G1 / 5;
byte M1 = (pgm_read_byte_near(rgbx) << 6);
leds[i].b = M1 / 5;
}
LEDS.show();
//delay(1);
}
pat = &message2;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
byte R1 = (pgm_read_byte_near(rgbx++) & 0xE0);
leds[i].r = R1 / 5; // /5 to bring brightness down
byte G1 = ((pgm_read_byte_near(rgbx) << 3) & 0xE0);
leds[i].g = G1 / 5;
byte M1 = (pgm_read_byte_near(rgbx) << 6);
leds[i].b = M1 / 5;
}
LEDS.show();
//delay(1);
}
pat = &message3;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
byte R1 = (pgm_read_byte_near(rgbx++) & 0xE0);
leds[i].r = R1 / 5; // /5 to bring brightness down
byte G1 = ((pgm_read_byte_near(rgbx) << 3) & 0xE0);
leds[i].g = G1 / 5;
byte M1 = (pgm_read_byte_near(rgbx) << 6);
leds[i].b = M1 / 5;
}
LEDS.show();
//delay(1);
}
pat = &message4;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
byte R1 = (pgm_read_byte_near(rgbx++) & 0xE0);
leds[i].r = R1 / 5; // /5 to bring brightness down
byte G1 = ((pgm_read_byte_near(rgbx) << 3) & 0xE0);
leds[i].g = G1 / 5;
byte M1 = (pgm_read_byte_near(rgbx) << 6);
leds[i].b = M1 / 5;
}
LEDS.show();
//delay(1);
}
pat = &message5;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
byte R1 = (pgm_read_byte_near(rgbx++) & 0xE0);
leds[i].r = R1 / 5; // /5 to bring brightness down
byte G1 = ((pgm_read_byte_near(rgbx) << 3) & 0xE0);
leds[i].g = G1 / 5;
byte M1 = (pgm_read_byte_near(rgbx) << 6);
leds[i].b = M1 / 5;
}
LEDS.show();
//delay(1);
}
pat = &message6;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
byte R1 = (pgm_read_byte_near(rgbx++) & 0xE0);
leds[i].r = R1 / 5; // /5 to bring brightness down
byte G1 = ((pgm_read_byte_near(rgbx) << 3) & 0xE0);
leds[i].g = G1 / 5;
byte M1 = (pgm_read_byte_near(rgbx) << 6);
leds[i].b = M1 / 5;
}
LEDS.show();
//delay(1);
}
break;
}
case 3:
{
pat = &message1;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
byte R1 = (pgm_read_byte_near(rgbx++) & 0xE0);
leds[i].r = R1 / 5; // /5 to bring brightness down
byte G1 = ((pgm_read_byte_near(rgbx) << 3) & 0xE0);
leds[i].g = G1 / 5;
byte M1 = (pgm_read_byte_near(rgbx) << 6);
leds[i].b = M1 / 5;
}
LEDS.show();
//delay(1);
}
break;
}
case 4: //Colour pallette code:
{
static uint8_t startIndex = 0;
if(upDown == true) {
startIndex = startIndex + PI; /* motion speed */
FillLEDsFromPaletteColors( startIndex);
//Serial.println(startIndex);
if (startIndex == 70){
upDown = false;
}
}
else {
startIndex = startIndex - PI; /* motion speed */
FillLEDsFromPaletteColors( startIndex);
//Serial.println(startIndex);
if (startIndex == 0){
upDown = true;
}
}
FastLED.show();
FastLED.delay(1000 / UPDATES_PER_SECOND);
break;
}
case 5:
{
pat = &message3;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
byte R1 = (pgm_read_byte_near(rgbx++) & 0xE0);
leds[i].r = R1 / 5; // /5 to bring brightness down
byte G1 = ((pgm_read_byte_near(rgbx) << 3) & 0xE0);
leds[i].g = G1 / 5;
byte M1 = (pgm_read_byte_near(rgbx) << 6);
leds[i].b = M1 / 5;
}
LEDS.show();
//delay(1);
}
break;
}
case 6:
{
pat = &message4;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
byte R1 = (pgm_read_byte_near(rgbx++) & 0xE0);
leds[i].r = R1 / 5; // /5 to bring brightness down
byte G1 = ((pgm_read_byte_near(rgbx) << 3) & 0xE0);
leds[i].g = G1 / 5;
byte M1 = (pgm_read_byte_near(rgbx) << 6);
leds[i].b = M1 / 5;
}
LEDS.show();
//delay(1);
}
break;
}
case 7:
{
pat = &message5;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
byte R1 = (pgm_read_byte_near(rgbx++) & 0xE0);
leds[i].r = R1 / 5; // /5 to bring brightness down
byte G1 = ((pgm_read_byte_near(rgbx) << 3) & 0xE0);
leds[i].g = G1 / 5;
byte M1 = (pgm_read_byte_near(rgbx) << 6);
leds[i].b = M1 / 5;
}
LEDS.show();
//delay(1);
}
break;
}
case 8:
{
pat = &message6;
rgbx = pat->patData;
for (int j = 0; j < pat->numFrames; j++ ) {
for (int i = 0; i < pat->numLeds; i++) {
byte R1 = (pgm_read_byte_near(rgbx++) & 0xE0);
leds[i].r = R1 / 5; // /5 to bring brightness down
byte G1 = ((pgm_read_byte_near(rgbx) << 3) & 0xE0);
leds[i].g = G1 / 5;
byte M1 = (pgm_read_byte_near(rgbx) << 6);
leds[i].b = M1 / 5;
}
LEDS.show();
//delay(1);
}
break;
}
}
///////////////////////////end eeprom switch/////////////////
}
//colour pallette code:
void FillLEDsFromPaletteColors( uint8_t colorIndex)
{
uint8_t brightness = 255;
for( int i = 0; i < NUM_LEDS; i++) {
leds[i] = ColorFromPalette( currentPalette, colorIndex, brightness, currentBlending);
colorIndex += 3;
}
}
const TProgmemPalette16 myRedWhiteBluePalette_p PROGMEM =
{
CRGB::Red,
CRGB::Gray, // 'white' is too bright compared to red and blue
CRGB::Blue,
CRGB::Black,
CRGB::Red,
CRGB::Gray,
CRGB::Blue,
CRGB::Black,
CRGB::Red,
CRGB::Red,
CRGB::Gray,
CRGB::Gray,
CRGB::Blue,
CRGB::Blue,
CRGB::Black,
CRGB::Black
};
void setByte(byte c){
//byte pos = 0;
for (mask = 10000000; mask>0; mask >>= 1) { //iterate through bit mask
if (c & mask){ // if bitwise AND resolves to true
//Serial.print("1"); //send predefined colour to led strip
leds[z] = CRGB::Red; //Red TEXT
//Serial.println(pos); //pos is position in strip
}
else{ //if bitwise and resolves to false
//Serial.print("0"); // send black to led strip!
leds[z] = 0; // IF OVERLAYING ON PICTURE DO NOTHING HERE!
//Serial.println(pos);
}
z++;
if(z == 32){
z = 0;
}
//pos++;
//delay(500); //delay
}
//Serial.print("");
//delay(500);
}
///////////////////////////Space between letters////////////////
void showGap(){
for (int j = 0; j < 5; j++ ) {
for (int i = 0; i < NUM_LEDS; i++) {
leds[i] = 0;
}
FastLED.show();
}
}
////////////////////////Space between words///////////////////
void showBigGap(){
for (int j = 0; j < 20; j++ ) {
for (int i = 0; i < NUM_LEDS; i++) {
leds[i] = 0;
}
FastLED.show();
}
}
//WHAT ABOUT OVERLAYING HOW TO DO THE GAP THEN?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment