diff --git a/FAQ.md b/FAQ.md index 6300f62..a0f6bde 100644 --- a/FAQ.md +++ b/FAQ.md @@ -118,7 +118,7 @@ For more details check out the [SDCardTest Example](/examples/TrinityFeatures/SD ### My colours are mixed up/not right -Well thats not technically a question, but I get you! +Well that's not technically a question, but I get you! Some matrix panels have some of the colour channels swapped around for some reason. The most common one I've seen is Blue and Green mixed, which seems to lead to a lot of purple images. @@ -140,7 +140,7 @@ I have not tried, but the I2S Matrix library doesn't seem to support it by defau "Trinity" has a lot of significance for Irish people. -The Trinity Knots symbol is something from Irish/Celtic history and is instantly recognizable as a symbol of Ireland. There are examples of artifacts dating back to the 8th century with Trinity Knots on them. +The Trinity Knots symbol is something from Irish/Celtic history and is instantly recognizable as a symbol of Ireland. There are examples of artefacts dating back to the 8th century with Trinity Knots on them. The Ireland national symbol is the shamrock, one of the main significances of the shamrock is a way to represent the Christian Holy Trinity. It's said that St Patrick used a shamrock to represent the Holy Trinity when he came to bring Christianity to Ireland. diff --git a/examples/Basics/ColourTest/ColourTest.ino b/examples/Basics/ColourTest/ColourTest.ino index 4bed62a..0adb718 100644 --- a/examples/Basics/ColourTest/ColourTest.ino +++ b/examples/Basics/ColourTest/ColourTest.ino @@ -39,13 +39,13 @@ // Can be installed from the library manager // https://github.com/adafruit/Adafruit-GFX-Library -// ------------------------------------- +// -------------------------------- // ------- Matrix Config ------ -// ------------------------------------- +// -------------------------------- -const int panelResX = 64; // Number of pixels wide of each INDIVIDUAL panel module. -const int panelResY = 64; // Number of pixels tall of each INDIVIDUAL panel module. -const int panel_chain = 1; // Total number of panels chained one to another +const int panelResX = 64; // Number of pixels wide of each INDIVIDUAL panel module. +const int panelResY = 64; // Number of pixels tall of each INDIVIDUAL panel module. +const int panel_chain = 1; // Total number of panels chained one to another. // See the "displaySetup" method for more display config options @@ -61,9 +61,9 @@ uint16_t myBLUE = dma_display->color565(0, 0, 255); void displaySetup() { HUB75_I2S_CFG mxconfig( - panelResX, // module width - panelResY, // module height - panel_chain // Chain length + panelResX, // Module width + panelResY, // Module height + panel_chain // Chain length ); // If you are using a 64x64 matrix you need to pass a value for the E pin @@ -92,11 +92,11 @@ void setup() { displaySetup(); // Can be set between 0 and 255 - // WARNING: The birghter it is, the more power it uses + // WARNING: The brighter it is, the more power it uses // Could take up to 3A on full brightness dma_display->setBrightness8(100); //0-255 - + dma_display->clearScreen(); dma_display->fillScreen(myWHITE); diff --git a/examples/Basics/HelloWorld/HelloWorld.ino b/examples/Basics/HelloWorld/HelloWorld.ino index 851b20f..7ce5d4c 100644 --- a/examples/Basics/HelloWorld/HelloWorld.ino +++ b/examples/Basics/HelloWorld/HelloWorld.ino @@ -1,5 +1,4 @@ /******************************************************************* - A simple example showing different size fonts in different colours Parts Used: @@ -8,14 +7,13 @@ If you find what I do useful and would like to support me, please consider becoming a sponsor on Github https://github.com/sponsors/witnessmenow/ - + Written by Brian Lough YouTube: https://www.youtube.com/brianlough Tindie: https://www.tindie.com/stores/brianlough/ Twitter: https://twitter.com/witnessmenow *******************************************************************/ - // ---------------------------- // Additional Libraries - each one of these will need to be installed. // ---------------------------- @@ -35,20 +33,20 @@ // Can be installed from the library manager // https://github.com/adafruit/Adafruit-GFX-Library -// ------------------------------------- +// -------------------------------- // ------- Matrix Config ------ -// ------------------------------------- +// -------------------------------- -const int panelResX = 64; // Number of pixels wide of each INDIVIDUAL panel module. -const int panelResY = 64; // Number of pixels tall of each INDIVIDUAL panel module. -const int panel_chain = 1; // Total number of panels chained one to another +const int panelResX = 64; // Number of pixels wide of each INDIVIDUAL panel module. +const int panelResY = 64; // Number of pixels tall of each INDIVIDUAL panel module. +const int panel_chain = 1; // Total number of panels chained one to another. // Note about chaining panels: // By default all matrix libraries treat the panels as been connected horizontally // (one long display). The I2S Matrix library supports different display configurations -// Details here: +// Details here: -// See the setup method for more display config options +// See the "displaySetup" method for more display config options //------------------------------------------------------------------------------------------------------------------ @@ -62,16 +60,16 @@ uint16_t myBLUE = dma_display->color565(0, 0, 255); void displaySetup() { HUB75_I2S_CFG mxconfig( - panelResX, // module width - panelResY, // module height - panel_chain // Chain length + panelResX, // Module width + panelResY, // Module height + panel_chain // Chain length ); // This is how you enable the double buffer. // Double buffer can help with animation heavy projects // It's not needed for something simple like this, but some // of the other examples make use of it. - + //mxconfig.double_buff = true; // If you are using a 64x64 matrix you need to pass a value for the E pin @@ -99,11 +97,11 @@ void setup() { Serial.begin(115200); displaySetup(); - + dma_display->clearScreen(); dma_display->fillScreen(myBLACK); dma_display->setTextWrap(false); - + dma_display->setTextSize(1); // size 1 == 8 pixels high dma_display->setTextColor(myBLUE); dma_display->setCursor(0, 0); diff --git a/examples/Basics/PanelChecker/PanelChecker.ino b/examples/Basics/PanelChecker/PanelChecker.ino index c805905..170b625 100644 --- a/examples/Basics/PanelChecker/PanelChecker.ino +++ b/examples/Basics/PanelChecker/PanelChecker.ino @@ -6,7 +6,7 @@ Usage: On startup touch none/either/both of the built-in touch pads of the Trinity to enable different modes - + T8: Not Touched -> clkphase defaults to true Touched -> mxconfig.clkphase = false; @@ -50,13 +50,13 @@ // Can be installed from the library manager // https://github.com/adafruit/Adafruit-GFX-Library -// ------------------------------------- +// -------------------------------- // ------- Matrix Config ------ -// ------------------------------------- +// -------------------------------- -const int panelResX = 64; // Number of pixels wide of each INDIVIDUAL panel module. -const int panelResY = 64; // Number of pixels tall of each INDIVIDUAL panel module. -const int panel_chain = 1; // Total number of panels chained one to another +const int panelResX = 64; // Number of pixels wide of each INDIVIDUAL panel module. +const int panelResY = 64; // Number of pixels tall of each INDIVIDUAL panel module. +const int panel_chain = 1; // Total number of panels chained one to another. // See the "displaySetup" method for more display config options @@ -72,9 +72,9 @@ uint16_t myBLUE = dma_display->color565(0, 0, 255); void displaySetup() { HUB75_I2S_CFG mxconfig( - panelResX, // module width - panelResY, // module height - panel_chain // Chain length + panelResX, // Module width + panelResY, // Module height + panel_chain // Chain length ); @@ -96,7 +96,6 @@ void displaySetup() { mxconfig.gpio.e = 18; - if (touch8detected) { // May or may not be needed depending on your matrix @@ -123,7 +122,7 @@ void setup() { displaySetup(); - dma_display->clearScreen(); + dma_display->clearScreen(); dma_display->fillScreen(myBLACK); dma_display->setTextWrap(false); diff --git a/examples/BoardTest/BoardTest.ino b/examples/BoardTest/BoardTest.ino index 7ce1c28..4064e47 100644 --- a/examples/BoardTest/BoardTest.ino +++ b/examples/BoardTest/BoardTest.ino @@ -1,7 +1,7 @@ /******************************************************************* The test sketch that was ran on every Trinity during testing. - It is a cobination of some of the other examples: + It is a combination of some of the other examples: - Hello World - Colour Test (just the white part) - Falling Sand @@ -61,25 +61,25 @@ bool changeDriver = true; // Can be installed from the library manager // https://github.com/adafruit/Adafruit-GFX-Library -// ------------------------------------- +// -------------------------------- // ------- Matrix Config ------ -// ------------------------------------- +// -------------------------------- -const int panelResX = 64; // Number of pixels wide of each INDIVIDUAL panel module. -const int panelResY = 64; // Number of pixels tall of each INDIVIDUAL panel module. -const int panel_chain = 1; // Total number of panels chained one to another +const int panelResX = 64; // Number of pixels wide of each INDIVIDUAL panel module. +const int panelResY = 64; // Number of pixels tall of each INDIVIDUAL panel module. +const int panel_chain = 1; // Total number of panels chained one to another. // See the "displaySetup" method for more display config options -// ------------------------------------- -// ------- Other Config Config ------ -// ------------------------------------- +// ------------------------------- +// ------- Other Config ------ +// ------------------------------- -#define TOUCH_THRESHOLD 38 // Bigger Threshold == more sensitive (resting is about 48) +#define TOUCH_THRESHOLD 38 // Bigger Threshold == more sensitive (resting is about 48) -#define SHOW_TIME 10 +#define SHOW_TIME 10 -#define MAX_FPS 100 // Maximum redraw rate, frames/second +#define MAX_FPS 100 // Maximum redraw rate, frames/second #define DISPLAY_FPS 50 //#define SHOW_FPS @@ -249,9 +249,9 @@ bool reconfigDisplay = false; void displayReconfig() { HUB75_I2S_CFG mxconfig( - panelResX, // module width - panelResY, // module height - panel_chain // Chain length + panelResX, // Module width + panelResY, // Module height + panel_chain // Chain length ); mxconfig.double_buff = true; @@ -331,8 +331,8 @@ void setup() { //touchAttachInterrupt(T8, gotTouch8, TOUCH_THRESHOLD); //touchAttachInterrupt(T9, gotTouch9, TOUCH_THRESHOLD); - for (uint8_t y = 0; y < MATRIX_HEIGHT; y++) { - for (uint8_t x = 0; x < MATRIX_WIDTH; x++) { + for (uint8_t y = 0; y < panelResY; y++) { + for (uint8_t x = 0; x < panelResX; x++) { screenPixels[x][y] = 65535; } } diff --git a/examples/BoardTest/FPS.h b/examples/BoardTest/FPS.h index 400c335..e17a3d3 100644 --- a/examples/BoardTest/FPS.h +++ b/examples/BoardTest/FPS.h @@ -9,7 +9,7 @@ Written by @tetra3dprint Twiter: https://twitter.com/tetra3dprint Github: https://github.com/tetra3dprint - + *******************************************************************/ //------------------------------------------------------------------------------------------------------------------ class FPS @@ -37,11 +37,11 @@ class FPS FrameCount++; currentMillis = millis(); passedMillis = currentMillis - startMillis; - if (passedMillis > oneThou) { + if (passedMillis > oneThou) { long remainder = passedMillis - oneThou; startMillis = currentMillis + remainder; // already started the next 1000 millis frame float FPM = (float)FrameCount / (float)passedMillis; - FrameCount = FPM * (float)remainder; // number of frames already rendered in the next 1000 millis frame + FrameCount = FPM * (float)remainder; // number of frames already rendered in the next 1000 millis frame FPSActual = FPM * oneThouF; // adjust the FPS to exactly 1000 millis } } diff --git a/examples/BoardTest/pallet.h b/examples/BoardTest/pallet.h index b87fe53..7bd5f8a 100644 --- a/examples/BoardTest/pallet.h +++ b/examples/BoardTest/pallet.h @@ -1,3 +1,3 @@ -const uint8_t PROGMEM pallet[] = {/* RGB888 R,G,B,R,G,B,R,G,B,... */ +const uint8_t PROGMEM pallet[] = {/* RGB888 R,G,B,R,G,B,R,G,B,... */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x05,0x00,0x00,0x0a,0x00,0x00,0x10,0x00,0x00,0x15,0x00,0x00,0x1b,0x00,0x00,0x20,0x00,0x00,0x25,0x00,0x00,0x2b,0x00,0x00,0x31,0x00,0x00,0x36,0x00,0x00,0x3c,0x00,0x00,0x41,0x00,0x00,0x46,0x00,0x00,0x4c,0x00,0x00,0x52,0x00,0x00,0x57,0x00,0x00,0x5d,0x00,0x00,0x62,0x00,0x00,0x68,0x00,0x00,0x6d,0x00,0x00,0x73,0x00,0x00,0x79,0x00,0x00,0x7e,0x00,0x00,0x83,0x00,0x00,0x89,0x00,0x00,0x8e,0x00,0x00,0x94,0x00,0x00,0x9a,0x00,0x00,0x9f,0x00,0x00,0xa5,0x00,0x00,0xaa,0x00,0x00,0xb0,0x00,0x00,0xb5,0x00,0x00,0xbb,0x00,0x00,0xc0,0x00,0x00,0xc6,0x00,0x00,0xcb,0x00,0x00,0xd1,0x00,0x00,0xd7,0x00,0x00,0xdc,0x00,0x00,0xe1,0x00,0x00,0xe6,0x00,0x00,0xe8,0x02,0x00,0xe9,0x08,0x00,0xe9,0x0f,0x00,0xe9,0x13,0x00,0xe9,0x16,0x00,0xe9,0x1b,0x00,0xe9,0x21,0x00,0xe9,0x26,0x00,0xe9,0x2a,0x00,0xe9,0x2e,0x00,0xe9,0x32,0x00,0xe9,0x37,0x00,0xe9,0x3b,0x00,0xe9,0x3f,0x00,0xe9,0x44,0x00,0xe9,0x4a,0x00,0xe9,0x4e,0x00,0xe9,0x52,0x00,0xe9,0x56,0x00,0xe9,0x5a,0x00,0xe9,0x5d,0x00,0xe9,0x63,0x00,0xe9,0x67,0x00,0xe9,0x6b,0x00,0xe9,0x71,0x00,0xe9,0x77,0x00,0xe9,0x78,0x00,0xe9,0x7c,0x00,0xe9,0x81,0x00,0xe9,0x86,0x00,0xe9,0x8b,0x00,0xe9,0x8f,0x00,0xe9,0x93,0x00,0xe9,0x99,0x00,0xe9,0x9d,0x00,0xe9,0xa0,0x00,0xe9,0xa4,0x00,0xe9,0xaa,0x00,0xe9,0xb0,0x00,0xe9,0xb4,0x00,0xe9,0xb5,0x00,0xe9,0xb9,0x00,0xe9,0xbe,0x00,0xe9,0xc3,0x00,0xe9,0xc9,0x00,0xe9,0xce,0x00,0xe9,0xd2,0x00,0xe9,0xd6,0x00,0xe9,0xd9,0x00,0xe9,0xdd,0x00,0xe9,0xe2,0x00,0xe9,0xe7,0x02,0xe9,0xe9,0x0e,0xe9,0xe9,0x1c,0xe9,0xe9,0x28,0xe9,0xe9,0x38,0xe9,0xe9,0x48,0xe9,0xe9,0x57,0xe9,0xe9,0x67,0xe9,0xe9,0x73,0xe9,0xe9,0x81,0xe9,0xe9,0x90,0xe9,0xe9,0xa1,0xe9,0xe9,0xb1,0xe9,0xe9,0xbf,0xe9,0xe9,0xcb,0xe9,0xe9,0xcb,0xe9,0xe9,0xcd,0xe9,0xe9,0xd9,0xe9,0xe9,0xe5,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe8,0xe8,0xe8,0xe8,0xe8,0xe8,0xe8,0xe8,0xe8,0xe8,0xe8,0xe8,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe6,0xe6,0xe6,0xe4,0xe4,0xe4,0xe3,0xe3,0xe3,0xe0,0xe0,0xe0,0xdc,0xdc,0xdc,0xd8,0xd8,0xd8,0xd2,0xd2,0xd2,0xca,0xca,0xca,0xc1,0xc1,0xc1,0xb7,0xb7,0xb7,0xab,0xab,0xab,0x9d,0x9d,0x9d,0x8f,0x8f,0x8f,0x81,0x81,0x81,0x72,0x72,0x72,0x64,0x64,0x64,0x56,0x56,0x56,0x4a,0x4a,0x4a,0x3e,0x3e,0x3e,0x33,0x33,0x33,0x2a,0x2a,0x2a,0x22,0x22,0x22,0x1b,0x1b,0x1b,0x16,0x16,0x16,0x11,0x11,0x11,0x0d,0x0d,0x0d,0x0b,0x0b,0x0b,0x08,0x08,0x08,0x07,0x07,0x07,0x06,0x06,0x06,0x05,0x05,0x05,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x02,0x02,0x02,0x02,0x02,0x02,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, }; diff --git a/examples/BuildingBlocks/Images/DisplayGIF/DisplayGIF.ino b/examples/BuildingBlocks/Images/DisplayGIF/DisplayGIF.ino index d48e133..f05dd6c 100644 --- a/examples/BuildingBlocks/Images/DisplayGIF/DisplayGIF.ino +++ b/examples/BuildingBlocks/Images/DisplayGIF/DisplayGIF.ino @@ -2,7 +2,7 @@ Displays gifs on a matrix display This loads the gifs from memory, this is the fastest way - + But speeds probably isn't super important for this, there is an example with the I2S matrix library tha loads the gifs from SPIFFS, which is probably a better way of doing it: https://github.com/mrfaptastic/ESP32-HUB75-MatrixPanel-I2S-DMA/tree/master/examples/AnimatedGIFPanel @@ -58,13 +58,13 @@ // Can be installed from the library manager // https://github.com/adafruit/Adafruit-GFX-Library -// ------------------------------------- +// -------------------------------- // ------- Matrix Config ------ -// ------------------------------------- +// -------------------------------- -const int panelResX = 64; // Number of pixels wide of each INDIVIDUAL panel module. -const int panelResY = 64; // Number of pixels tall of each INDIVIDUAL panel module. -const int panel_chain = 1; // Total number of panels chained one to another +const int panelResX = 64; // Number of pixels wide of each INDIVIDUAL panel module. +const int panelResY = 64; // Number of pixels tall of each INDIVIDUAL panel module. +const int panel_chain = 1; // Total number of panels chained one to another. // See the "displaySetup" method for more display config options @@ -157,9 +157,9 @@ void GIFDraw(GIFDRAW *pDraw) void displaySetup() { HUB75_I2S_CFG mxconfig( - panelResX, // module width - panelResY, // module height - panel_chain // Chain length + panelResX, // Module width + panelResY, // Module height + panel_chain // Chain length ); // If you are using a 64x64 matrix you need to pass a value for the E pin diff --git a/examples/BuildingBlocks/Images/DisplayGIF/fire.h b/examples/BuildingBlocks/Images/DisplayGIF/fire.h index 88ff3c0..d4f897d 100644 --- a/examples/BuildingBlocks/Images/DisplayGIF/fire.h +++ b/examples/BuildingBlocks/Images/DisplayGIF/fire.h @@ -10,219 +10,220 @@ #ifndef PROGMEM #define PROGMEM #endif -const unsigned char fire[] PROGMEM = { 0x47,0x49,0x46,0x38,0x39,0x61,0x40,0x00,0x40,0x00,0xf7,0x0b,0x00,0x26,0x0e,0x0b, - 0x6b,0x24,0x1b,0xff,0xff,0xff,0xff,0x05,0x05,0xf8,0xb8,0x28,0xa0,0x28,0x18,0xf8, - 0x50,0x10,0xf8,0xe0,0x38,0xd0,0x40,0x20,0xf8,0x88,0x10,0x00,0x00,0x00,0xff,0xff, - 0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x21,0xff,0x0b, - 0x4e,0x45,0x54,0x53,0x43,0x41,0x50,0x45,0x32,0x2e,0x30,0x03,0x01,0x00,0x00,0x00, - 0x21,0xf9,0x04,0x09,0x0a,0x00,0x0b,0x00,0x2c,0x00,0x00,0x00,0x00,0x40,0x00,0x40, - 0x00,0x00,0x08,0xff,0x00,0x17,0x08,0x1c,0x48,0xb0,0xa0,0xc1,0x83,0x08,0x13,0x2a, - 0x5c,0xc8,0xb0,0xa1,0xc3,0x87,0x10,0x23,0x26,0x44,0x20,0xb1,0xa2,0xc5,0x82,0x08, - 0x32,0x5e,0xdc,0x28,0x31,0xa3,0x46,0x8e,0x20,0x17,0x7a,0xa4,0x18,0x12,0xe4,0x01, - 0x8c,0x03,0x3f,0x96,0x5c,0xc9,0xb2,0xa5,0xcb,0x97,0x0c,0x49,0xa2,0x84,0x79,0x51, - 0xe5,0x4c,0x9a,0x1d,0x27,0xca,0xc4,0xe9,0x50,0xe5,0x49,0x8c,0x3b,0x79,0x8a,0xb4, - 0x09,0x34,0xa8,0x50,0x84,0x1e,0x91,0x26,0x3d,0xba,0xb0,0xc0,0xd2,0xa2,0x46,0x99, - 0x16,0x2c,0xe0,0xf4,0xe9,0x48,0xa2,0x4c,0x8d,0x52,0xbd,0xca,0x35,0x2a,0x4f,0xac, - 0x0b,0xb6,0x76,0xfd,0xf8,0x33,0x2b,0xd8,0xaa,0x55,0x47,0x4a,0x3d,0x78,0xd6,0xe3, - 0x01,0x04,0x55,0xd7,0x3e,0x4c,0x7b,0x55,0xae,0xc3,0xaa,0x6f,0xd5,0x1e,0x2c,0x60, - 0x77,0x60,0x5a,0x03,0x75,0x11,0xf2,0x3d,0x3a,0xd8,0x6f,0x46,0x03,0x88,0x03,0x0b, - 0x4c,0x30,0xd0,0x40,0x61,0x9a,0x70,0xa9,0xa6,0x3c,0x8c,0x38,0xf1,0x53,0x82,0x88, - 0x1f,0xbf,0xcc,0x78,0x40,0xf2,0xdf,0xca,0x80,0x3d,0x1a,0x30,0x98,0x19,0xe7,0x48, - 0xcf,0x94,0x09,0x10,0xa8,0x2c,0x7a,0x74,0xe3,0xd2,0x34,0x2d,0x67,0xac,0x8a,0x38, - 0x81,0xea,0xd5,0xb2,0x2b,0x2f,0x00,0xad,0x99,0x25,0xe8,0xd0,0x08,0x2a,0xdb,0x3e, - 0x70,0x5b,0x76,0xf0,0xdf,0x8e,0x63,0xff,0x3e,0x6e,0x20,0xc1,0xf0,0x03,0xc4,0x13, - 0x00,0xa7,0xcc,0x1b,0x26,0x72,0xe1,0xce,0x09,0x40,0xdf,0xee,0xbc,0x35,0xf2,0xde, - 0x21,0x6b,0xff,0xff,0x76,0x4e,0x7e,0x3b,0xf7,0x04,0xd4,0x9d,0x57,0x6f,0xd9,0x3c, - 0xc1,0x01,0xe9,0xb5,0xc9,0x3f,0x37,0x4f,0x40,0x7d,0xed,0xf7,0xeb,0x57,0xb6,0x87, - 0x0e,0xbf,0x7d,0x79,0xf3,0xd0,0xd5,0x07,0x9f,0x73,0xfc,0x65,0x06,0xde,0x45,0xfb, - 0x05,0x28,0x9d,0x7c,0xee,0x01,0x18,0x9d,0x7a,0xff,0xbd,0x57,0x40,0x02,0x07,0x5a, - 0x94,0xe0,0x7b,0x0c,0x66,0x47,0x5f,0x86,0x11,0x62,0x28,0x5d,0x49,0xed,0x69,0xf7, - 0x20,0x87,0x22,0x0a,0xc8,0xe1,0x7c,0xe4,0xb9,0xc6,0x91,0x7f,0xfc,0x9d,0x48,0x9e, - 0x76,0x2e,0xbe,0xd8,0xa2,0x7a,0x20,0xb1,0x18,0xa3,0x7c,0x26,0xc6,0x38,0x23,0x8d, - 0x08,0xe2,0x78,0xe3,0x8f,0x19,0x7a,0xc8,0xa3,0x85,0x40,0x16,0x49,0x62,0x86,0x2a, - 0x46,0xe4,0x9f,0x91,0x4c,0xba,0x48,0x64,0x93,0x50,0x72,0x98,0xe4,0x43,0x4b,0x3a, - 0x17,0x40,0x00,0x51,0x72,0x78,0xa5,0x94,0x12,0x55,0x99,0xc0,0x95,0x01,0x00,0x90, - 0xa5,0x7c,0x00,0x80,0xc9,0x61,0x97,0x19,0x5e,0x09,0xc0,0x9a,0x63,0x26,0xb0,0x66, - 0x99,0x58,0x66,0x88,0x26,0x83,0x6a,0x0e,0x30,0x80,0x98,0x51,0x02,0x60,0x27,0x9c, - 0x67,0x46,0x84,0x40,0x9a,0x61,0xee,0x89,0x27,0x93,0x6b,0xee,0xb9,0x25,0x83,0x15, - 0x4e,0x94,0xa3,0x74,0x6a,0xbe,0x09,0xe5,0x9b,0x70,0x7a,0xe9,0x95,0x42,0x08,0x08, - 0x69,0x25,0x98,0x87,0x32,0x89,0x69,0xa6,0xd9,0x25,0xaa,0xe8,0x88,0x8c,0x82,0xe9, - 0xa5,0x9b,0xce,0x0d,0x2a,0x9f,0x01,0x98,0x56,0xf9,0x96,0x45,0x95,0x82,0x2a,0x65, - 0x9c,0xa4,0xc6,0x7e,0xfa,0xe5,0xa8,0x38,0x76,0x56,0xd3,0x86,0x48,0x9a,0xe9,0xa8, - 0x9b,0x6c,0x8a,0x4a,0x62,0x80,0x93,0x36,0xd4,0xea,0x76,0x8b,0x6e,0x0a,0xe9,0xb1, - 0x98,0x66,0x28,0xe2,0xaa,0x1c,0x21,0xb0,0x6c,0x80,0x02,0xc6,0x89,0x2a,0x00,0x06, - 0x40,0x5a,0x2d,0xb5,0x56,0x66,0xf7,0x2c,0xb3,0x20,0x0d,0x0b,0xa0,0x6a,0xe4,0x05, - 0xd0,0x1e,0x9b,0xd2,0x99,0xba,0x2d,0x74,0xc1,0x76,0x74,0x2e,0xb1,0xb7,0xd5,0x47, - 0xae,0x6d,0xeb,0x02,0xeb,0x52,0x46,0xf1,0x3a,0x68,0xaf,0x83,0x04,0x38,0x05,0x59, - 0x01,0xf5,0xde,0x8b,0xaf,0xbe,0x42,0xcd,0xa6,0x9a,0xbf,0xf6,0xe6,0x0b,0xd6,0x57, - 0x02,0x0f,0x4c,0x9f,0x6a,0x62,0xf5,0x65,0xd0,0x69,0x54,0xa5,0xe5,0xf0,0xc4,0x02, - 0x05,0x04,0x00,0x21,0xf9,0x04,0x09,0x0a,0x00,0x0b,0x00,0x2c,0x00,0x00,0x00,0x00, - 0x40,0x00,0x40,0x00,0x00,0x08,0xff,0x00,0x17,0x08,0x1c,0x48,0xb0,0xa0,0xc1,0x83, - 0x08,0x13,0x2a,0x5c,0xc8,0xb0,0x21,0xc1,0x03,0x0e,0x23,0x4a,0x9c,0x48,0xb1,0xa2, - 0xc5,0x8b,0x18,0x33,0x0a,0x44,0x60,0x90,0xa3,0xc6,0x8f,0x0c,0x11,0x78,0x04,0xa9, - 0x11,0xe2,0x41,0x91,0x23,0x49,0xaa,0x44,0x89,0x52,0x25,0xc9,0x02,0x2c,0x11,0xc0, - 0x94,0xe9,0x12,0x63,0x81,0x9b,0x33,0x63,0x8a,0x2c,0x50,0xb3,0x22,0x4e,0x96,0x07, - 0x74,0xe2,0x2c,0x98,0xb2,0xa7,0xc1,0x9f,0x3a,0x63,0xde,0x34,0xea,0x10,0x69,0x52, - 0x96,0x4b,0x13,0x9a,0x64,0xea,0x74,0xe7,0xd3,0xa8,0x0b,0x78,0x32,0x3d,0x5a,0xf5, - 0xe9,0x4e,0xad,0x59,0xc1,0x6e,0x15,0x88,0x33,0xa7,0x57,0x94,0x58,0xb1,0x8e,0x2d, - 0x7b,0x56,0xa9,0xd8,0xa1,0x6b,0xd9,0x26,0x4d,0x20,0x32,0xa8,0x4c,0xb1,0x5f,0xc7, - 0x86,0xbd,0xd9,0x16,0x6d,0xc7,0xbb,0x7a,0xbb,0xb2,0xa4,0xeb,0x97,0x68,0xde,0xad, - 0x82,0x51,0x12,0xa6,0x69,0xf8,0x30,0xe2,0x99,0x76,0x81,0x12,0x16,0xbb,0x11,0x2a, - 0xe5,0x9e,0x66,0x07,0x1f,0x88,0x6c,0x38,0xb2,0x5a,0x92,0x29,0x23,0xc7,0xdc,0x7c, - 0x60,0xf1,0x68,0xcf,0x97,0x3f,0x8a,0x1c,0xc8,0x59,0x31,0x69,0xd1,0x28,0x49,0xa3, - 0x4d,0xad,0x5a,0xa0,0x6c,0x8e,0x06,0x0c,0x20,0x78,0x5d,0xba,0x6e,0x6c,0xd1,0xb4, - 0x55,0xca,0x36,0xb0,0x20,0xb7,0x01,0xde,0xb0,0x8f,0x03,0xd7,0xbb,0x59,0x24,0xf1, - 0xe2,0xc8,0xed,0x1a,0x57,0xce,0xf2,0xb9,0x51,0xd2,0xba,0x47,0x1a,0x48,0xc0,0x3b, - 0xc1,0xf4,0xdc,0xcd,0xa7,0x6f,0xff,0xdd,0x9c,0xbb,0x20,0xf8,0xd7,0xe2,0xa1,0x93, - 0x2f,0xcf,0x74,0xbd,0xc1,0xf3,0xeb,0xd9,0x17,0x57,0x6e,0x9c,0xe9,0x77,0xf3,0xe7, - 0xbd,0xa7,0x17,0x08,0xbe,0x7e,0xcf,0xed,0x07,0xb0,0xf7,0xdd,0x71,0xfa,0x0d,0x38, - 0x90,0x71,0xfa,0xfd,0x97,0xc0,0x82,0xde,0xcd,0x97,0x1b,0x83,0x0b,0x0e,0xe8,0x5f, - 0x71,0x11,0x5a,0x47,0xd2,0x76,0x10,0x16,0x98,0x61,0x85,0xd3,0x15,0xc8,0x1f,0x77, - 0x0b,0xba,0x84,0xe1,0x86,0x24,0x32,0xd8,0x21,0x87,0x14,0x32,0x28,0x62,0x89,0x2c, - 0x72,0x98,0xe1,0x83,0x19,0x5e,0xd8,0x62,0x8b,0x30,0xce,0x98,0x00,0x48,0x23,0xda, - 0xa8,0x63,0x8b,0x1a,0xe5,0x48,0x22,0x01,0x3b,0xea,0xd8,0x63,0x90,0x2c,0x02,0x29, - 0x64,0x46,0x3e,0x6e,0x68,0x24,0x91,0x25,0x12,0x90,0xd1,0x6e,0x2d,0x1e,0xb0,0x64, - 0x91,0x3a,0x3a,0x89,0xd1,0x6e,0x53,0x42,0x48,0x5a,0x96,0x19,0x4a,0x69,0x23,0x01, - 0x53,0x59,0xb4,0xdb,0x66,0x59,0x82,0x49,0x5a,0x94,0xa5,0x35,0xf9,0xda,0x93,0xc8, - 0x11,0x00,0x24,0x6f,0x5c,0x2e,0x68,0x26,0x97,0x66,0xf2,0x76,0x25,0x72,0x37,0x45, - 0xc7,0x65,0x77,0x0c,0x12,0x00,0x40,0x01,0xd1,0xdd,0xf9,0xda,0x4d,0x00,0x00,0xa0, - 0x27,0x84,0x75,0x92,0x29,0x67,0xa1,0x7f,0x22,0x27,0x28,0x69,0x05,0x00,0xb0,0xa0, - 0xa1,0x6d,0xba,0x99,0x28,0x6f,0x92,0x26,0xd0,0xa8,0x9d,0x17,0x21,0x90,0x68,0xa4, - 0x93,0x52,0x8a,0xe9,0x66,0xa2,0x0e,0x9a,0xe9,0xa6,0x64,0x5a,0x29,0xa6,0xa5,0x9b, - 0x11,0xca,0xe8,0xa0,0xa4,0xc6,0x8f,0x7a,0x00,0xa0,0x90,0x32,0x8a,0xaa,0x91,0x4f, - 0xca,0xd9,0x6a,0x59,0x90,0x02,0x5a,0x28,0xa9,0x86,0xe6,0xb9,0x2b,0x4e,0x8a,0xd2, - 0xa5,0x11,0x02,0x7d,0x12,0x50,0x16,0xad,0x38,0x09,0x60,0x6b,0xa1,0x02,0x10,0x3b, - 0x6b,0x59,0x53,0x16,0x25,0x66,0x86,0xd2,0x4e,0x1b,0xe9,0xb3,0x7f,0x66,0x8b,0x53, - 0x86,0xd6,0x5e,0xfb,0x23,0x98,0x38,0x71,0x5b,0x28,0xb1,0x6e,0x96,0x18,0xae,0xb8, - 0x24,0x6a,0x6b,0x6e,0xb7,0x80,0xb2,0xb8,0x2e,0xbb,0x1b,0x2e,0x6b,0x6e,0x59,0xf2, - 0xba,0x24,0x13,0x89,0xf1,0x26,0xe0,0xeb,0xab,0x99,0xce,0xca,0xef,0xbc,0x4f,0x16, - 0xc0,0xa2,0xc1,0x07,0xfc,0xaa,0xe9,0xc1,0x04,0x83,0xb4,0x2f,0x8b,0x85,0xb6,0x08, - 0x93,0x5e,0x04,0x3d,0x4c,0xe4,0xc4,0x14,0xff,0x65,0xf1,0xc0,0xab,0x65,0xbc,0xd0, - 0x59,0x1e,0x87,0xcc,0x50,0x40,0x00,0x21,0xf9,0x04,0x09,0x0a,0x00,0x0b,0x00,0x2c, - 0x00,0x00,0x00,0x00,0x40,0x00,0x40,0x00,0x00,0x08,0xff,0x00,0x17,0x08,0x1c,0x48, - 0xb0,0xa0,0xc1,0x83,0x08,0x13,0x2a,0x5c,0xc8,0xb0,0xa1,0xc3,0x87,0x10,0x21,0x22, - 0x68,0x78,0x20,0xa2,0x45,0x87,0x08,0x26,0x5e,0xdc,0xc8,0x51,0xa0,0xc6,0x83,0x1f, - 0x3b,0x8a,0xc4,0x38,0xb2,0x64,0xc1,0x90,0x03,0x33,0x9a,0x14,0x59,0x31,0x25,0xca, - 0x05,0x08,0x08,0xbc,0x5c,0xb9,0x51,0x25,0xc1,0x8c,0x38,0x69,0x8a,0xcc,0x39,0xb0, - 0x40,0x46,0x99,0x3c,0x75,0x46,0xc4,0x19,0xd2,0x67,0xcc,0x8c,0x07,0x82,0x0a,0x65, - 0x68,0xd4,0xa6,0x40,0xa3,0x07,0x92,0xe2,0x4c,0xba,0x94,0xa9,0x4f,0xaa,0x04,0x8d, - 0x12,0x38,0x00,0x94,0x68,0x55,0x85,0x05,0xa2,0x3a,0x7d,0x5a,0xc0,0x80,0x01,0xb1, - 0x53,0xc7,0x7e,0xcd,0x2a,0xf6,0x60,0xd9,0xb3,0x52,0x11,0xc4,0x5d,0xeb,0x36,0x2a, - 0xc2,0xb7,0x5b,0x0d,0xc8,0x8d,0x3b,0x73,0xad,0x5d,0xb7,0x6f,0xb9,0x9e,0xf5,0xa8, - 0x96,0xae,0xc0,0x96,0x1e,0xb3,0x9a,0x15,0x8c,0xb8,0xb0,0xe1,0x05,0x88,0x0d,0x1a, - 0x48,0x10,0xd5,0x40,0x81,0x9b,0x8f,0x21,0xc2,0x3d,0x30,0x38,0xb3,0xc2,0xc8,0x04, - 0x37,0x6f,0xf5,0x9c,0xf0,0x6f,0x41,0x03,0x5b,0xa3,0x8e,0x26,0x7d,0x90,0xb3,0x81, - 0xd3,0xa8,0x55,0xe7,0x1d,0x98,0x80,0x35,0x4c,0xd7,0xaf,0x05,0x9a,0x8d,0xcd,0x35, - 0x41,0x67,0xdb,0x1e,0x77,0x0b,0x37,0x4b,0x99,0x2b,0x01,0xdf,0xa6,0x6d,0xbf,0x1d, - 0x3e,0x39,0x01,0x81,0xe7,0x09,0xa2,0x9b,0x05,0xfe,0x14,0xc1,0xf0,0xe8,0xd1,0x8f, - 0x63,0xf7,0x6d,0x99,0xba,0xcf,0xeb,0xdb,0xc3,0xef,0xff,0xa6,0xbe,0xe0,0xfb,0xd9, - 0xe6,0xe1,0xb7,0x9b,0xed,0x6b,0xd8,0x3c,0xf1,0xf4,0xea,0xf5,0xb2,0xa7,0x6b,0x7d, - 0x77,0xfa,0x03,0xf1,0xf5,0x52,0x07,0x0f,0x5f,0xfa,0xfa,0xf9,0x5f,0x09,0xd7,0x5f, - 0x7e,0xfa,0xd1,0x95,0xdb,0x40,0x02,0x3a,0xb7,0x9d,0x76,0xd2,0x71,0xb7,0x1e,0x6b, - 0xf6,0x0d,0x98,0x9e,0x70,0x9e,0xf9,0x87,0x1e,0x83,0x0a,0x4e,0x48,0xa1,0x61,0xd8, - 0xbd,0x47,0x19,0x86,0x5b,0x85,0x77,0xdc,0x86,0x6b,0x6d,0x35,0x62,0x73,0xa9,0x31, - 0xa8,0xda,0x76,0xf8,0x39,0x78,0xe0,0x52,0xa9,0x89,0x18,0x55,0x54,0xd8,0xcd,0xa8, - 0x62,0x87,0xd3,0x55,0x95,0xda,0x8a,0xce,0xcd,0xb8,0xa2,0x8f,0xbd,0xa5,0xe8,0x22, - 0x8c,0x3e,0x1e,0xb7,0x23,0x90,0xc5,0x15,0x59,0xa4,0x83,0x42,0x3d,0xa7,0x24,0x90, - 0x50,0x46,0x09,0x65,0x8e,0x34,0x1d,0x29,0xe5,0x95,0x58,0xba,0x56,0x65,0x92,0x59, - 0x76,0x19,0xe5,0x8b,0x23,0x69,0x67,0xa5,0x97,0x5d,0x1e,0xb7,0xa5,0x73,0x04,0x04, - 0x90,0xe5,0x98,0x3b,0xaa,0x29,0x9b,0x73,0x55,0x6a,0x17,0xc0,0x9c,0x63,0xca,0x06, - 0xe5,0x73,0x69,0xd2,0xb9,0x60,0x9c,0xd1,0x05,0x00,0xc0,0x9f,0x78,0x9a,0x48,0x00, - 0x00,0xcf,0x01,0x50,0x64,0xa1,0x7f,0x06,0x20,0x22,0x4d,0xdb,0xf9,0x19,0x15,0x00, - 0x68,0x06,0x50,0xe8,0xa4,0x69,0x62,0x67,0xe8,0x01,0x00,0x28,0xba,0xe7,0x4a,0x08, - 0x60,0xe7,0x28,0xa6,0x94,0xcd,0x99,0xc0,0x9f,0xd1,0x91,0x3a,0x27,0x7e,0x97,0x66, - 0x9a,0x1e,0x4d,0x9d,0x7a,0xfa,0x27,0xa4,0x73,0xaa,0x91,0xf9,0xea,0xab,0x07,0xc4, - 0x3a,0x6a,0xa2,0xe9,0x01,0x38,0x54,0xa3,0xb6,0xc6,0x3a,0xeb,0xaf,0xa2,0xc6,0xaa, - 0xe9,0x76,0x97,0xad,0x54,0x40,0x78,0xa2,0x26,0xe0,0xeb,0xaf,0xaf,0x26,0x9b,0xec, - 0x82,0xba,0xee,0x0a,0xdf,0xb2,0xcc,0x66,0x3a,0x6c,0x7a,0x04,0x14,0x4b,0xd3,0xb1, - 0xf7,0x51,0xcb,0xec,0xa9,0xfd,0x61,0xa5,0x53,0x4c,0xc8,0x0a,0x5b,0xad,0xb5,0xd7, - 0x62,0x97,0x6d,0x55,0x61,0x61,0xe8,0x66,0xad,0x98,0xd2,0x7a,0x69,0xad,0x32,0x46, - 0xcb,0xd1,0x5e,0x18,0xf6,0x46,0xd9,0x9f,0x2d,0x46,0xd7,0x2f,0x9e,0xe2,0x7e,0x85, - 0x40,0x58,0xc6,0xcd,0x68,0x29,0xa4,0xea,0xda,0xd9,0x56,0x66,0x7b,0x1d,0x1a,0x28, - 0xc0,0x40,0xfa,0xc4,0xda,0xc0,0x64,0xce,0x58,0x80,0xb6,0xb6,0x65,0x74,0x31,0x96, - 0x46,0x91,0x67,0x10,0x51,0x20,0xdb,0xeb,0xb1,0x50,0x01,0x01,0x00,0x21,0xf9,0x04, - 0x09,0x0a,0x00,0x0b,0x00,0x2c,0x00,0x00,0x00,0x00,0x40,0x00,0x40,0x00,0x00,0x08, - 0xff,0x00,0x17,0x08,0x1c,0x48,0xb0,0xa0,0xc1,0x83,0x07,0x0f,0x20,0x5c,0xc8,0xb0, - 0xa1,0x43,0x81,0x0a,0x1f,0x4a,0x9c,0x48,0x91,0x62,0xc4,0x8a,0x18,0x33,0x26,0x44, - 0xa0,0xb1,0x63,0xc7,0x03,0x07,0x38,0x7a,0x1c,0x09,0xb1,0x21,0xc8,0x90,0x24,0x49, - 0x46,0x14,0x59,0xb0,0x00,0x48,0x04,0x2c,0x53,0x8e,0x84,0xd9,0xd2,0x65,0xc8,0x98, - 0x32,0x3b,0xd2,0x1c,0x58,0xc0,0x26,0x4c,0x9c,0x39,0x35,0xc6,0x84,0xf9,0xd2,0x00, - 0xd0,0xa0,0x33,0x61,0x1a,0x58,0x8a,0x14,0x29,0xd1,0xa5,0x06,0x9a,0x06,0x45,0x00, - 0x35,0xaa,0xd4,0x9c,0x55,0xad,0x5e,0xad,0x78,0xb4,0xaa,0xc1,0xa3,0x5b,0x0b,0xfe, - 0x34,0x08,0x75,0xe1,0xc5,0xb0,0x62,0xc7,0x12,0x2c,0x8b,0x96,0xa2,0xd2,0x9d,0x03, - 0x99,0xb6,0x75,0xbb,0x14,0xa8,0xdc,0xb9,0x66,0x09,0x52,0x35,0x7a,0x50,0xeb,0xc0, - 0xb3,0x78,0x3f,0x06,0x56,0x09,0x76,0xf0,0xdf,0x85,0x6a,0x0d,0xeb,0x75,0xf8,0xb3, - 0x30,0x5e,0xb8,0x08,0xdf,0x2a,0x4e,0xcb,0x11,0x6c,0xe3,0xc1,0x38,0x2f,0x43,0xd6, - 0xeb,0x78,0xae,0xe6,0xcd,0x02,0x3b,0x7b,0x66,0x79,0x79,0xf2,0xc1,0xa3,0x6f,0x13, - 0x9b,0x5e,0x00,0x9a,0x75,0x63,0xd5,0xac,0x0d,0x83,0x6e,0x6c,0x14,0x76,0xeb,0xab, - 0xb6,0x69,0xd7,0xce,0x7c,0xbb,0xe9,0xcf,0x02,0x3c,0x75,0xef,0x1e,0x0a,0x5b,0xea, - 0x5e,0x98,0x3d,0x93,0x2b,0xad,0x9a,0x38,0x35,0x5a,0x02,0x04,0x8e,0x23,0x48,0x5e, - 0x60,0x39,0x54,0xb5,0xaf,0x7b,0x8f,0x84,0x0e,0x1d,0x64,0x6d,0xea,0xd5,0xb3,0xfe, - 0xff,0x0e,0x6f,0x20,0xba,0xf6,0x8e,0x09,0xd2,0x27,0xe8,0x7e,0x73,0xba,0x72,0xe6, - 0xc8,0x7b,0xee,0x7d,0x79,0x1e,0xa3,0xfa,0xf4,0xdc,0x09,0xdc,0x54,0xbe,0xbc,0x31, - 0xff,0x93,0xdc,0x05,0x75,0x1f,0x7e,0xf9,0x21,0xa7,0x5f,0x76,0x08,0xe8,0xc7,0x5f, - 0x77,0xd0,0xad,0x27,0x93,0x01,0x03,0x12,0x08,0x5d,0x82,0xfa,0x1d,0x60,0x5e,0x63, - 0xfa,0x11,0x20,0x5f,0x7e,0x0d,0x26,0xf0,0x60,0x84,0xeb,0x49,0xc8,0xe1,0x6b,0x19, - 0x86,0xd4,0x21,0x77,0xe9,0xa5,0x04,0x21,0x88,0x04,0xa8,0xd7,0xe1,0x7a,0x17,0xc2, - 0xd4,0x22,0x87,0xf7,0xb5,0x98,0x80,0x5f,0x1a,0xad,0x18,0xa1,0x8d,0x3b,0x4e,0x28, - 0x23,0x8f,0x2f,0x0e,0x88,0x63,0x46,0x3a,0xa6,0xd7,0x13,0x88,0x35,0x4e,0x18,0x64, - 0x02,0x47,0x46,0x38,0x24,0x46,0x45,0xf6,0x04,0x00,0x92,0x35,0x9a,0xc8,0x63,0x02, - 0x00,0x00,0xd0,0xe4,0x7d,0x4f,0x56,0x14,0x65,0x96,0x53,0x52,0x09,0xe3,0x92,0x60, - 0x16,0xe0,0x24,0x49,0x5f,0x0a,0x20,0x40,0x98,0x54,0xa2,0xa8,0x1e,0x00,0x6a,0x6a, - 0x79,0xe6,0x48,0x69,0xae,0xc9,0x26,0x92,0x57,0x66,0x19,0xa7,0x99,0x03,0x02,0x37, - 0xd3,0x80,0x60,0xca,0x09,0x68,0x7a,0x77,0x12,0x1a,0x28,0x88,0x7e,0x7a,0x84,0x40, - 0x9f,0xd4,0xa9,0xc7,0x67,0x98,0x61,0xf2,0xc9,0x64,0xa3,0x11,0x26,0xaa,0x53,0xa5, - 0x4d,0x1e,0x70,0x64,0x96,0x86,0x4e,0x7a,0x80,0x91,0x5b,0x5e,0x69,0xa9,0x50,0x62, - 0x4e,0xea,0x52,0xa0,0x59,0x6a,0xba,0xa5,0x98,0xa3,0x92,0x8a,0xa4,0xaa,0x52,0xa2, - 0x66,0x4a,0xdd,0xa7,0x57,0x86,0x68,0xa4,0x4c,0x8b,0x22,0x09,0x1e,0xaa,0x5a,0x52, - 0x3a,0xe0,0x8c,0x1a,0xe6,0x94,0x6b,0xa5,0xe9,0x69,0xca,0xab,0xa4,0x66,0xd6,0xca, - 0x9d,0x68,0x5c,0x05,0xf9,0xa2,0x99,0x07,0x80,0xc9,0xe4,0xaf,0x36,0x16,0x68,0x9c, - 0x9b,0x6e,0xbe,0x59,0xa8,0x88,0xd6,0x5e,0x55,0x00,0x87,0x4b,0xb2,0xc8,0x5e,0xb7, - 0x5b,0xf5,0x54,0xa2,0x85,0xe0,0x82,0x7b,0x12,0xba,0xd5,0x3d,0x36,0x1d,0x7b,0xeb, - 0xc6,0x0b,0x12,0x77,0xd5,0x31,0xeb,0x9b,0x81,0x1c,0xae,0x5b,0xaf,0xbd,0x6d,0xed, - 0xfb,0x5a,0xab,0xab,0x05,0x16,0x10,0x00,0x3b}; +const unsigned char fire[] PROGMEM = { + 0x47,0x49,0x46,0x38,0x39,0x61,0x40,0x00,0x40,0x00,0xf7,0x0b,0x00,0x26,0x0e,0x0b, + 0x6b,0x24,0x1b,0xff,0xff,0xff,0xff,0x05,0x05,0xf8,0xb8,0x28,0xa0,0x28,0x18,0xf8, + 0x50,0x10,0xf8,0xe0,0x38,0xd0,0x40,0x20,0xf8,0x88,0x10,0x00,0x00,0x00,0xff,0xff, + 0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x21,0xff,0x0b, + 0x4e,0x45,0x54,0x53,0x43,0x41,0x50,0x45,0x32,0x2e,0x30,0x03,0x01,0x00,0x00,0x00, + 0x21,0xf9,0x04,0x09,0x0a,0x00,0x0b,0x00,0x2c,0x00,0x00,0x00,0x00,0x40,0x00,0x40, + 0x00,0x00,0x08,0xff,0x00,0x17,0x08,0x1c,0x48,0xb0,0xa0,0xc1,0x83,0x08,0x13,0x2a, + 0x5c,0xc8,0xb0,0xa1,0xc3,0x87,0x10,0x23,0x26,0x44,0x20,0xb1,0xa2,0xc5,0x82,0x08, + 0x32,0x5e,0xdc,0x28,0x31,0xa3,0x46,0x8e,0x20,0x17,0x7a,0xa4,0x18,0x12,0xe4,0x01, + 0x8c,0x03,0x3f,0x96,0x5c,0xc9,0xb2,0xa5,0xcb,0x97,0x0c,0x49,0xa2,0x84,0x79,0x51, + 0xe5,0x4c,0x9a,0x1d,0x27,0xca,0xc4,0xe9,0x50,0xe5,0x49,0x8c,0x3b,0x79,0x8a,0xb4, + 0x09,0x34,0xa8,0x50,0x84,0x1e,0x91,0x26,0x3d,0xba,0xb0,0xc0,0xd2,0xa2,0x46,0x99, + 0x16,0x2c,0xe0,0xf4,0xe9,0x48,0xa2,0x4c,0x8d,0x52,0xbd,0xca,0x35,0x2a,0x4f,0xac, + 0x0b,0xb6,0x76,0xfd,0xf8,0x33,0x2b,0xd8,0xaa,0x55,0x47,0x4a,0x3d,0x78,0xd6,0xe3, + 0x01,0x04,0x55,0xd7,0x3e,0x4c,0x7b,0x55,0xae,0xc3,0xaa,0x6f,0xd5,0x1e,0x2c,0x60, + 0x77,0x60,0x5a,0x03,0x75,0x11,0xf2,0x3d,0x3a,0xd8,0x6f,0x46,0x03,0x88,0x03,0x0b, + 0x4c,0x30,0xd0,0x40,0x61,0x9a,0x70,0xa9,0xa6,0x3c,0x8c,0x38,0xf1,0x53,0x82,0x88, + 0x1f,0xbf,0xcc,0x78,0x40,0xf2,0xdf,0xca,0x80,0x3d,0x1a,0x30,0x98,0x19,0xe7,0x48, + 0xcf,0x94,0x09,0x10,0xa8,0x2c,0x7a,0x74,0xe3,0xd2,0x34,0x2d,0x67,0xac,0x8a,0x38, + 0x81,0xea,0xd5,0xb2,0x2b,0x2f,0x00,0xad,0x99,0x25,0xe8,0xd0,0x08,0x2a,0xdb,0x3e, + 0x70,0x5b,0x76,0xf0,0xdf,0x8e,0x63,0xff,0x3e,0x6e,0x20,0xc1,0xf0,0x03,0xc4,0x13, + 0x00,0xa7,0xcc,0x1b,0x26,0x72,0xe1,0xce,0x09,0x40,0xdf,0xee,0xbc,0x35,0xf2,0xde, + 0x21,0x6b,0xff,0xff,0x76,0x4e,0x7e,0x3b,0xf7,0x04,0xd4,0x9d,0x57,0x6f,0xd9,0x3c, + 0xc1,0x01,0xe9,0xb5,0xc9,0x3f,0x37,0x4f,0x40,0x7d,0xed,0xf7,0xeb,0x57,0xb6,0x87, + 0x0e,0xbf,0x7d,0x79,0xf3,0xd0,0xd5,0x07,0x9f,0x73,0xfc,0x65,0x06,0xde,0x45,0xfb, + 0x05,0x28,0x9d,0x7c,0xee,0x01,0x18,0x9d,0x7a,0xff,0xbd,0x57,0x40,0x02,0x07,0x5a, + 0x94,0xe0,0x7b,0x0c,0x66,0x47,0x5f,0x86,0x11,0x62,0x28,0x5d,0x49,0xed,0x69,0xf7, + 0x20,0x87,0x22,0x0a,0xc8,0xe1,0x7c,0xe4,0xb9,0xc6,0x91,0x7f,0xfc,0x9d,0x48,0x9e, + 0x76,0x2e,0xbe,0xd8,0xa2,0x7a,0x20,0xb1,0x18,0xa3,0x7c,0x26,0xc6,0x38,0x23,0x8d, + 0x08,0xe2,0x78,0xe3,0x8f,0x19,0x7a,0xc8,0xa3,0x85,0x40,0x16,0x49,0x62,0x86,0x2a, + 0x46,0xe4,0x9f,0x91,0x4c,0xba,0x48,0x64,0x93,0x50,0x72,0x98,0xe4,0x43,0x4b,0x3a, + 0x17,0x40,0x00,0x51,0x72,0x78,0xa5,0x94,0x12,0x55,0x99,0xc0,0x95,0x01,0x00,0x90, + 0xa5,0x7c,0x00,0x80,0xc9,0x61,0x97,0x19,0x5e,0x09,0xc0,0x9a,0x63,0x26,0xb0,0x66, + 0x99,0x58,0x66,0x88,0x26,0x83,0x6a,0x0e,0x30,0x80,0x98,0x51,0x02,0x60,0x27,0x9c, + 0x67,0x46,0x84,0x40,0x9a,0x61,0xee,0x89,0x27,0x93,0x6b,0xee,0xb9,0x25,0x83,0x15, + 0x4e,0x94,0xa3,0x74,0x6a,0xbe,0x09,0xe5,0x9b,0x70,0x7a,0xe9,0x95,0x42,0x08,0x08, + 0x69,0x25,0x98,0x87,0x32,0x89,0x69,0xa6,0xd9,0x25,0xaa,0xe8,0x88,0x8c,0x82,0xe9, + 0xa5,0x9b,0xce,0x0d,0x2a,0x9f,0x01,0x98,0x56,0xf9,0x96,0x45,0x95,0x82,0x2a,0x65, + 0x9c,0xa4,0xc6,0x7e,0xfa,0xe5,0xa8,0x38,0x76,0x56,0xd3,0x86,0x48,0x9a,0xe9,0xa8, + 0x9b,0x6c,0x8a,0x4a,0x62,0x80,0x93,0x36,0xd4,0xea,0x76,0x8b,0x6e,0x0a,0xe9,0xb1, + 0x98,0x66,0x28,0xe2,0xaa,0x1c,0x21,0xb0,0x6c,0x80,0x02,0xc6,0x89,0x2a,0x00,0x06, + 0x40,0x5a,0x2d,0xb5,0x56,0x66,0xf7,0x2c,0xb3,0x20,0x0d,0x0b,0xa0,0x6a,0xe4,0x05, + 0xd0,0x1e,0x9b,0xd2,0x99,0xba,0x2d,0x74,0xc1,0x76,0x74,0x2e,0xb1,0xb7,0xd5,0x47, + 0xae,0x6d,0xeb,0x02,0xeb,0x52,0x46,0xf1,0x3a,0x68,0xaf,0x83,0x04,0x38,0x05,0x59, + 0x01,0xf5,0xde,0x8b,0xaf,0xbe,0x42,0xcd,0xa6,0x9a,0xbf,0xf6,0xe6,0x0b,0xd6,0x57, + 0x02,0x0f,0x4c,0x9f,0x6a,0x62,0xf5,0x65,0xd0,0x69,0x54,0xa5,0xe5,0xf0,0xc4,0x02, + 0x05,0x04,0x00,0x21,0xf9,0x04,0x09,0x0a,0x00,0x0b,0x00,0x2c,0x00,0x00,0x00,0x00, + 0x40,0x00,0x40,0x00,0x00,0x08,0xff,0x00,0x17,0x08,0x1c,0x48,0xb0,0xa0,0xc1,0x83, + 0x08,0x13,0x2a,0x5c,0xc8,0xb0,0x21,0xc1,0x03,0x0e,0x23,0x4a,0x9c,0x48,0xb1,0xa2, + 0xc5,0x8b,0x18,0x33,0x0a,0x44,0x60,0x90,0xa3,0xc6,0x8f,0x0c,0x11,0x78,0x04,0xa9, + 0x11,0xe2,0x41,0x91,0x23,0x49,0xaa,0x44,0x89,0x52,0x25,0xc9,0x02,0x2c,0x11,0xc0, + 0x94,0xe9,0x12,0x63,0x81,0x9b,0x33,0x63,0x8a,0x2c,0x50,0xb3,0x22,0x4e,0x96,0x07, + 0x74,0xe2,0x2c,0x98,0xb2,0xa7,0xc1,0x9f,0x3a,0x63,0xde,0x34,0xea,0x10,0x69,0x52, + 0x96,0x4b,0x13,0x9a,0x64,0xea,0x74,0xe7,0xd3,0xa8,0x0b,0x78,0x32,0x3d,0x5a,0xf5, + 0xe9,0x4e,0xad,0x59,0xc1,0x6e,0x15,0x88,0x33,0xa7,0x57,0x94,0x58,0xb1,0x8e,0x2d, + 0x7b,0x56,0xa9,0xd8,0xa1,0x6b,0xd9,0x26,0x4d,0x20,0x32,0xa8,0x4c,0xb1,0x5f,0xc7, + 0x86,0xbd,0xd9,0x16,0x6d,0xc7,0xbb,0x7a,0xbb,0xb2,0xa4,0xeb,0x97,0x68,0xde,0xad, + 0x82,0x51,0x12,0xa6,0x69,0xf8,0x30,0xe2,0x99,0x76,0x81,0x12,0x16,0xbb,0x11,0x2a, + 0xe5,0x9e,0x66,0x07,0x1f,0x88,0x6c,0x38,0xb2,0x5a,0x92,0x29,0x23,0xc7,0xdc,0x7c, + 0x60,0xf1,0x68,0xcf,0x97,0x3f,0x8a,0x1c,0xc8,0x59,0x31,0x69,0xd1,0x28,0x49,0xa3, + 0x4d,0xad,0x5a,0xa0,0x6c,0x8e,0x06,0x0c,0x20,0x78,0x5d,0xba,0x6e,0x6c,0xd1,0xb4, + 0x55,0xca,0x36,0xb0,0x20,0xb7,0x01,0xde,0xb0,0x8f,0x03,0xd7,0xbb,0x59,0x24,0xf1, + 0xe2,0xc8,0xed,0x1a,0x57,0xce,0xf2,0xb9,0x51,0xd2,0xba,0x47,0x1a,0x48,0xc0,0x3b, + 0xc1,0xf4,0xdc,0xcd,0xa7,0x6f,0xff,0xdd,0x9c,0xbb,0x20,0xf8,0xd7,0xe2,0xa1,0x93, + 0x2f,0xcf,0x74,0xbd,0xc1,0xf3,0xeb,0xd9,0x17,0x57,0x6e,0x9c,0xe9,0x77,0xf3,0xe7, + 0xbd,0xa7,0x17,0x08,0xbe,0x7e,0xcf,0xed,0x07,0xb0,0xf7,0xdd,0x71,0xfa,0x0d,0x38, + 0x90,0x71,0xfa,0xfd,0x97,0xc0,0x82,0xde,0xcd,0x97,0x1b,0x83,0x0b,0x0e,0xe8,0x5f, + 0x71,0x11,0x5a,0x47,0xd2,0x76,0x10,0x16,0x98,0x61,0x85,0xd3,0x15,0xc8,0x1f,0x77, + 0x0b,0xba,0x84,0xe1,0x86,0x24,0x32,0xd8,0x21,0x87,0x14,0x32,0x28,0x62,0x89,0x2c, + 0x72,0x98,0xe1,0x83,0x19,0x5e,0xd8,0x62,0x8b,0x30,0xce,0x98,0x00,0x48,0x23,0xda, + 0xa8,0x63,0x8b,0x1a,0xe5,0x48,0x22,0x01,0x3b,0xea,0xd8,0x63,0x90,0x2c,0x02,0x29, + 0x64,0x46,0x3e,0x6e,0x68,0x24,0x91,0x25,0x12,0x90,0xd1,0x6e,0x2d,0x1e,0xb0,0x64, + 0x91,0x3a,0x3a,0x89,0xd1,0x6e,0x53,0x42,0x48,0x5a,0x96,0x19,0x4a,0x69,0x23,0x01, + 0x53,0x59,0xb4,0xdb,0x66,0x59,0x82,0x49,0x5a,0x94,0xa5,0x35,0xf9,0xda,0x93,0xc8, + 0x11,0x00,0x24,0x6f,0x5c,0x2e,0x68,0x26,0x97,0x66,0xf2,0x76,0x25,0x72,0x37,0x45, + 0xc7,0x65,0x77,0x0c,0x12,0x00,0x40,0x01,0xd1,0xdd,0xf9,0xda,0x4d,0x00,0x00,0xa0, + 0x27,0x84,0x75,0x92,0x29,0x67,0xa1,0x7f,0x22,0x27,0x28,0x69,0x05,0x00,0xb0,0xa0, + 0xa1,0x6d,0xba,0x99,0x28,0x6f,0x92,0x26,0xd0,0xa8,0x9d,0x17,0x21,0x90,0x68,0xa4, + 0x93,0x52,0x8a,0xe9,0x66,0xa2,0x0e,0x9a,0xe9,0xa6,0x64,0x5a,0x29,0xa6,0xa5,0x9b, + 0x11,0xca,0xe8,0xa0,0xa4,0xc6,0x8f,0x7a,0x00,0xa0,0x90,0x32,0x8a,0xaa,0x91,0x4f, + 0xca,0xd9,0x6a,0x59,0x90,0x02,0x5a,0x28,0xa9,0x86,0xe6,0xb9,0x2b,0x4e,0x8a,0xd2, + 0xa5,0x11,0x02,0x7d,0x12,0x50,0x16,0xad,0x38,0x09,0x60,0x6b,0xa1,0x02,0x10,0x3b, + 0x6b,0x59,0x53,0x16,0x25,0x66,0x86,0xd2,0x4e,0x1b,0xe9,0xb3,0x7f,0x66,0x8b,0x53, + 0x86,0xd6,0x5e,0xfb,0x23,0x98,0x38,0x71,0x5b,0x28,0xb1,0x6e,0x96,0x18,0xae,0xb8, + 0x24,0x6a,0x6b,0x6e,0xb7,0x80,0xb2,0xb8,0x2e,0xbb,0x1b,0x2e,0x6b,0x6e,0x59,0xf2, + 0xba,0x24,0x13,0x89,0xf1,0x26,0xe0,0xeb,0xab,0x99,0xce,0xca,0xef,0xbc,0x4f,0x16, + 0xc0,0xa2,0xc1,0x07,0xfc,0xaa,0xe9,0xc1,0x04,0x83,0xb4,0x2f,0x8b,0x85,0xb6,0x08, + 0x93,0x5e,0x04,0x3d,0x4c,0xe4,0xc4,0x14,0xff,0x65,0xf1,0xc0,0xab,0x65,0xbc,0xd0, + 0x59,0x1e,0x87,0xcc,0x50,0x40,0x00,0x21,0xf9,0x04,0x09,0x0a,0x00,0x0b,0x00,0x2c, + 0x00,0x00,0x00,0x00,0x40,0x00,0x40,0x00,0x00,0x08,0xff,0x00,0x17,0x08,0x1c,0x48, + 0xb0,0xa0,0xc1,0x83,0x08,0x13,0x2a,0x5c,0xc8,0xb0,0xa1,0xc3,0x87,0x10,0x21,0x22, + 0x68,0x78,0x20,0xa2,0x45,0x87,0x08,0x26,0x5e,0xdc,0xc8,0x51,0xa0,0xc6,0x83,0x1f, + 0x3b,0x8a,0xc4,0x38,0xb2,0x64,0xc1,0x90,0x03,0x33,0x9a,0x14,0x59,0x31,0x25,0xca, + 0x05,0x08,0x08,0xbc,0x5c,0xb9,0x51,0x25,0xc1,0x8c,0x38,0x69,0x8a,0xcc,0x39,0xb0, + 0x40,0x46,0x99,0x3c,0x75,0x46,0xc4,0x19,0xd2,0x67,0xcc,0x8c,0x07,0x82,0x0a,0x65, + 0x68,0xd4,0xa6,0x40,0xa3,0x07,0x92,0xe2,0x4c,0xba,0x94,0xa9,0x4f,0xaa,0x04,0x8d, + 0x12,0x38,0x00,0x94,0x68,0x55,0x85,0x05,0xa2,0x3a,0x7d,0x5a,0xc0,0x80,0x01,0xb1, + 0x53,0xc7,0x7e,0xcd,0x2a,0xf6,0x60,0xd9,0xb3,0x52,0x11,0xc4,0x5d,0xeb,0x36,0x2a, + 0xc2,0xb7,0x5b,0x0d,0xc8,0x8d,0x3b,0x73,0xad,0x5d,0xb7,0x6f,0xb9,0x9e,0xf5,0xa8, + 0x96,0xae,0xc0,0x96,0x1e,0xb3,0x9a,0x15,0x8c,0xb8,0xb0,0xe1,0x05,0x88,0x0d,0x1a, + 0x48,0x10,0xd5,0x40,0x81,0x9b,0x8f,0x21,0xc2,0x3d,0x30,0x38,0xb3,0xc2,0xc8,0x04, + 0x37,0x6f,0xf5,0x9c,0xf0,0x6f,0x41,0x03,0x5b,0xa3,0x8e,0x26,0x7d,0x90,0xb3,0x81, + 0xd3,0xa8,0x55,0xe7,0x1d,0x98,0x80,0x35,0x4c,0xd7,0xaf,0x05,0x9a,0x8d,0xcd,0x35, + 0x41,0x67,0xdb,0x1e,0x77,0x0b,0x37,0x4b,0x99,0x2b,0x01,0xdf,0xa6,0x6d,0xbf,0x1d, + 0x3e,0x39,0x01,0x81,0xe7,0x09,0xa2,0x9b,0x05,0xfe,0x14,0xc1,0xf0,0xe8,0xd1,0x8f, + 0x63,0xf7,0x6d,0x99,0xba,0xcf,0xeb,0xdb,0xc3,0xef,0xff,0xa6,0xbe,0xe0,0xfb,0xd9, + 0xe6,0xe1,0xb7,0x9b,0xed,0x6b,0xd8,0x3c,0xf1,0xf4,0xea,0xf5,0xb2,0xa7,0x6b,0x7d, + 0x77,0xfa,0x03,0xf1,0xf5,0x52,0x07,0x0f,0x5f,0xfa,0xfa,0xf9,0x5f,0x09,0xd7,0x5f, + 0x7e,0xfa,0xd1,0x95,0xdb,0x40,0x02,0x3a,0xb7,0x9d,0x76,0xd2,0x71,0xb7,0x1e,0x6b, + 0xf6,0x0d,0x98,0x9e,0x70,0x9e,0xf9,0x87,0x1e,0x83,0x0a,0x4e,0x48,0xa1,0x61,0xd8, + 0xbd,0x47,0x19,0x86,0x5b,0x85,0x77,0xdc,0x86,0x6b,0x6d,0x35,0x62,0x73,0xa9,0x31, + 0xa8,0xda,0x76,0xf8,0x39,0x78,0xe0,0x52,0xa9,0x89,0x18,0x55,0x54,0xd8,0xcd,0xa8, + 0x62,0x87,0xd3,0x55,0x95,0xda,0x8a,0xce,0xcd,0xb8,0xa2,0x8f,0xbd,0xa5,0xe8,0x22, + 0x8c,0x3e,0x1e,0xb7,0x23,0x90,0xc5,0x15,0x59,0xa4,0x83,0x42,0x3d,0xa7,0x24,0x90, + 0x50,0x46,0x09,0x65,0x8e,0x34,0x1d,0x29,0xe5,0x95,0x58,0xba,0x56,0x65,0x92,0x59, + 0x76,0x19,0xe5,0x8b,0x23,0x69,0x67,0xa5,0x97,0x5d,0x1e,0xb7,0xa5,0x73,0x04,0x04, + 0x90,0xe5,0x98,0x3b,0xaa,0x29,0x9b,0x73,0x55,0x6a,0x17,0xc0,0x9c,0x63,0xca,0x06, + 0xe5,0x73,0x69,0xd2,0xb9,0x60,0x9c,0xd1,0x05,0x00,0xc0,0x9f,0x78,0x9a,0x48,0x00, + 0x00,0xcf,0x01,0x50,0x64,0xa1,0x7f,0x06,0x20,0x22,0x4d,0xdb,0xf9,0x19,0x15,0x00, + 0x68,0x06,0x50,0xe8,0xa4,0x69,0x62,0x67,0xe8,0x01,0x00,0x28,0xba,0xe7,0x4a,0x08, + 0x60,0xe7,0x28,0xa6,0x94,0xcd,0x99,0xc0,0x9f,0xd1,0x91,0x3a,0x27,0x7e,0x97,0x66, + 0x9a,0x1e,0x4d,0x9d,0x7a,0xfa,0x27,0xa4,0x73,0xaa,0x91,0xf9,0xea,0xab,0x07,0xc4, + 0x3a,0x6a,0xa2,0xe9,0x01,0x38,0x54,0xa3,0xb6,0xc6,0x3a,0xeb,0xaf,0xa2,0xc6,0xaa, + 0xe9,0x76,0x97,0xad,0x54,0x40,0x78,0xa2,0x26,0xe0,0xeb,0xaf,0xaf,0x26,0x9b,0xec, + 0x82,0xba,0xee,0x0a,0xdf,0xb2,0xcc,0x66,0x3a,0x6c,0x7a,0x04,0x14,0x4b,0xd3,0xb1, + 0xf7,0x51,0xcb,0xec,0xa9,0xfd,0x61,0xa5,0x53,0x4c,0xc8,0x0a,0x5b,0xad,0xb5,0xd7, + 0x62,0x97,0x6d,0x55,0x61,0x61,0xe8,0x66,0xad,0x98,0xd2,0x7a,0x69,0xad,0x32,0x46, + 0xcb,0xd1,0x5e,0x18,0xf6,0x46,0xd9,0x9f,0x2d,0x46,0xd7,0x2f,0x9e,0xe2,0x7e,0x85, + 0x40,0x58,0xc6,0xcd,0x68,0x29,0xa4,0xea,0xda,0xd9,0x56,0x66,0x7b,0x1d,0x1a,0x28, + 0xc0,0x40,0xfa,0xc4,0xda,0xc0,0x64,0xce,0x58,0x80,0xb6,0xb6,0x65,0x74,0x31,0x96, + 0x46,0x91,0x67,0x10,0x51,0x20,0xdb,0xeb,0xb1,0x50,0x01,0x01,0x00,0x21,0xf9,0x04, + 0x09,0x0a,0x00,0x0b,0x00,0x2c,0x00,0x00,0x00,0x00,0x40,0x00,0x40,0x00,0x00,0x08, + 0xff,0x00,0x17,0x08,0x1c,0x48,0xb0,0xa0,0xc1,0x83,0x07,0x0f,0x20,0x5c,0xc8,0xb0, + 0xa1,0x43,0x81,0x0a,0x1f,0x4a,0x9c,0x48,0x91,0x62,0xc4,0x8a,0x18,0x33,0x26,0x44, + 0xa0,0xb1,0x63,0xc7,0x03,0x07,0x38,0x7a,0x1c,0x09,0xb1,0x21,0xc8,0x90,0x24,0x49, + 0x46,0x14,0x59,0xb0,0x00,0x48,0x04,0x2c,0x53,0x8e,0x84,0xd9,0xd2,0x65,0xc8,0x98, + 0x32,0x3b,0xd2,0x1c,0x58,0xc0,0x26,0x4c,0x9c,0x39,0x35,0xc6,0x84,0xf9,0xd2,0x00, + 0xd0,0xa0,0x33,0x61,0x1a,0x58,0x8a,0x14,0x29,0xd1,0xa5,0x06,0x9a,0x06,0x45,0x00, + 0x35,0xaa,0xd4,0x9c,0x55,0xad,0x5e,0xad,0x78,0xb4,0xaa,0xc1,0xa3,0x5b,0x0b,0xfe, + 0x34,0x08,0x75,0xe1,0xc5,0xb0,0x62,0xc7,0x12,0x2c,0x8b,0x96,0xa2,0xd2,0x9d,0x03, + 0x99,0xb6,0x75,0xbb,0x14,0xa8,0xdc,0xb9,0x66,0x09,0x52,0x35,0x7a,0x50,0xeb,0xc0, + 0xb3,0x78,0x3f,0x06,0x56,0x09,0x76,0xf0,0xdf,0x85,0x6a,0x0d,0xeb,0x75,0xf8,0xb3, + 0x30,0x5e,0xb8,0x08,0xdf,0x2a,0x4e,0xcb,0x11,0x6c,0xe3,0xc1,0x38,0x2f,0x43,0xd6, + 0xeb,0x78,0xae,0xe6,0xcd,0x02,0x3b,0x7b,0x66,0x79,0x79,0xf2,0xc1,0xa3,0x6f,0x13, + 0x9b,0x5e,0x00,0x9a,0x75,0x63,0xd5,0xac,0x0d,0x83,0x6e,0x6c,0x14,0x76,0xeb,0xab, + 0xb6,0x69,0xd7,0xce,0x7c,0xbb,0xe9,0xcf,0x02,0x3c,0x75,0xef,0x1e,0x0a,0x5b,0xea, + 0x5e,0x98,0x3d,0x93,0x2b,0xad,0x9a,0x38,0x35,0x5a,0x02,0x04,0x8e,0x23,0x48,0x5e, + 0x60,0x39,0x54,0xb5,0xaf,0x7b,0x8f,0x84,0x0e,0x1d,0x64,0x6d,0xea,0xd5,0xb3,0xfe, + 0xff,0x0e,0x6f,0x20,0xba,0xf6,0x8e,0x09,0xd2,0x27,0xe8,0x7e,0x73,0xba,0x72,0xe6, + 0xc8,0x7b,0xee,0x7d,0x79,0x1e,0xa3,0xfa,0xf4,0xdc,0x09,0xdc,0x54,0xbe,0xbc,0x31, + 0xff,0x93,0xdc,0x05,0x75,0x1f,0x7e,0xf9,0x21,0xa7,0x5f,0x76,0x08,0xe8,0xc7,0x5f, + 0x77,0xd0,0xad,0x27,0x93,0x01,0x03,0x12,0x08,0x5d,0x82,0xfa,0x1d,0x60,0x5e,0x63, + 0xfa,0x11,0x20,0x5f,0x7e,0x0d,0x26,0xf0,0x60,0x84,0xeb,0x49,0xc8,0xe1,0x6b,0x19, + 0x86,0xd4,0x21,0x77,0xe9,0xa5,0x04,0x21,0x88,0x04,0xa8,0xd7,0xe1,0x7a,0x17,0xc2, + 0xd4,0x22,0x87,0xf7,0xb5,0x98,0x80,0x5f,0x1a,0xad,0x18,0xa1,0x8d,0x3b,0x4e,0x28, + 0x23,0x8f,0x2f,0x0e,0x88,0x63,0x46,0x3a,0xa6,0xd7,0x13,0x88,0x35,0x4e,0x18,0x64, + 0x02,0x47,0x46,0x38,0x24,0x46,0x45,0xf6,0x04,0x00,0x92,0x35,0x9a,0xc8,0x63,0x02, + 0x00,0x00,0xd0,0xe4,0x7d,0x4f,0x56,0x14,0x65,0x96,0x53,0x52,0x09,0xe3,0x92,0x60, + 0x16,0xe0,0x24,0x49,0x5f,0x0a,0x20,0x40,0x98,0x54,0xa2,0xa8,0x1e,0x00,0x6a,0x6a, + 0x79,0xe6,0x48,0x69,0xae,0xc9,0x26,0x92,0x57,0x66,0x19,0xa7,0x99,0x03,0x02,0x37, + 0xd3,0x80,0x60,0xca,0x09,0x68,0x7a,0x77,0x12,0x1a,0x28,0x88,0x7e,0x7a,0x84,0x40, + 0x9f,0xd4,0xa9,0xc7,0x67,0x98,0x61,0xf2,0xc9,0x64,0xa3,0x11,0x26,0xaa,0x53,0xa5, + 0x4d,0x1e,0x70,0x64,0x96,0x86,0x4e,0x7a,0x80,0x91,0x5b,0x5e,0x69,0xa9,0x50,0x62, + 0x4e,0xea,0x52,0xa0,0x59,0x6a,0xba,0xa5,0x98,0xa3,0x92,0x8a,0xa4,0xaa,0x52,0xa2, + 0x66,0x4a,0xdd,0xa7,0x57,0x86,0x68,0xa4,0x4c,0x8b,0x22,0x09,0x1e,0xaa,0x5a,0x52, + 0x3a,0xe0,0x8c,0x1a,0xe6,0x94,0x6b,0xa5,0xe9,0x69,0xca,0xab,0xa4,0x66,0xd6,0xca, + 0x9d,0x68,0x5c,0x05,0xf9,0xa2,0x99,0x07,0x80,0xc9,0xe4,0xaf,0x36,0x16,0x68,0x9c, + 0x9b,0x6e,0xbe,0x59,0xa8,0x88,0xd6,0x5e,0x55,0x00,0x87,0x4b,0xb2,0xc8,0x5e,0xb7, + 0x5b,0xf5,0x54,0xa2,0x85,0xe0,0x82,0x7b,0x12,0xba,0xd5,0x3d,0x36,0x1d,0x7b,0xeb, + 0xc6,0x0b,0x12,0x77,0xd5,0x31,0xeb,0x9b,0x81,0x1c,0xae,0x5b,0xaf,0xbd,0x6d,0xed, + 0xfb,0x5a,0xab,0xab,0x05,0x16,0x10,0x00,0x3b}; diff --git a/examples/BuildingBlocks/Images/DisplayImageFromWeb/DisplayImageFromWeb.ino b/examples/BuildingBlocks/Images/DisplayImageFromWeb/DisplayImageFromWeb.ino index 33eee85..3760210 100644 --- a/examples/BuildingBlocks/Images/DisplayImageFromWeb/DisplayImageFromWeb.ino +++ b/examples/BuildingBlocks/Images/DisplayImageFromWeb/DisplayImageFromWeb.ino @@ -1,11 +1,11 @@ /******************************************************************* - Display an image loaded from the internt on a matrix display + Display an image loaded from the internet on a matrix display This is a more generic version of the functionality worked on for the Spotify library. This loads an image from imgur. It uses https, but it could be adapted to - http by just using a WiFiClient, rahter than WiFiClientSecure + http by just using a WiFiClient, rather than WiFiClientSecure The image loaded is a 64 x 64 image, but it should display on smaller matrix (just be cut off). @@ -64,21 +64,21 @@ #include "WebRequest.h" -// ------------------------------------- +// -------------------------------- // ------- Matrix Config ------ -// ------------------------------------- +// -------------------------------- -const int panelResX = 64; // Number of pixels wide of each INDIVIDUAL panel module. -const int panelResY = 64; // Number of pixels tall of each INDIVIDUAL panel module. -const int panel_chain = 1; // Total number of panels chained one to another +const int panelResX = 64; // Number of pixels wide of each INDIVIDUAL panel module. +const int panelResY = 64; // Number of pixels tall of each INDIVIDUAL panel module. +const int panel_chain = 1; // Total number of panels chained one to another. // See the "displaySetup" method for more display config options //------------------------------------------------------------------------------------------------------------------ -// ------------------------------------- +// --------------------------------------------------- //------- Other Config - Replace the following! ------ -// ------------------------------------- +// --------------------------------------------------- char ssid[] = "SSID"; // your network SSID (name) char password[] = "password"; // your network password @@ -111,9 +111,9 @@ void JPEGDraw(JPEGDRAW *pDraw) void displaySetup() { HUB75_I2S_CFG mxconfig( - panelResX, // module width - panelResY, // module height - panel_chain // Chain length + panelResX, // Module width + panelResY, // Module height + panel_chain // Chain length ); // If you are using a 64x64 matrix you need to pass a value for the E pin diff --git a/examples/BuildingBlocks/Text/CenterText/CenterText.ino b/examples/BuildingBlocks/Text/CenterText/CenterText.ino index 77e09af..d0b1143 100644 --- a/examples/BuildingBlocks/Text/CenterText/CenterText.ino +++ b/examples/BuildingBlocks/Text/CenterText/CenterText.ino @@ -1,5 +1,4 @@ /******************************************************************* - An Example to show how to center text. Parts Used: @@ -34,13 +33,13 @@ // Can be installed from the library manager // https://github.com/adafruit/Adafruit-GFX-Library -// ------------------------------------- +// -------------------------------- // ------- Matrix Config ------ -// ------------------------------------- +// -------------------------------- -const int panelResX = 64; // Number of pixels wide of each INDIVIDUAL panel module. -const int panelResY = 64; // Number of pixels tall of each INDIVIDUAL panel module. -const int panel_chain = 1; // Total number of panels chained one to another +const int panelResX = 64; // Number of pixels wide of each INDIVIDUAL panel module. +const int panelResY = 64; // Number of pixels tall of each INDIVIDUAL panel module. +const int panel_chain = 1; // Total number of panels chained one to another. // See the "displaySetup" method for more display config options @@ -56,9 +55,9 @@ uint16_t myBLUE = dma_display->color565(0, 0, 255); void displaySetup() { HUB75_I2S_CFG mxconfig( - panelResX, // module width - panelResY, // module height - panel_chain // Chain length + panelResX, // Module width + panelResY, // Module height + panel_chain // Chain length ); // If you are using a 64x64 matrix you need to pass a value for the E pin @@ -94,15 +93,15 @@ void setup() { dma_display->setTextColor(myBLUE); // Pointers to this variable will be passed into getTextBounds, - // they will be updated from inside the method + // they will be updated from inside the method int16_t xOne, yOne; uint16_t w, h; // This method updates the variables with what width (w) and height (h) // the give text will have. - + dma_display->getTextBounds("HI", 0, 0, &xOne, &yOne, &w, &h); - + int xPosition = dma_display->width() / 2 - w / 2 + 1; // The 1 at the end is to combat what seems like a bug somewhere: // https://github.com/mrfaptastic/ESP32-HUB75-MatrixPanel-I2S-DMA/issues/43 diff --git a/examples/BuildingBlocks/Text/ScrollingText/ScrollingText.ino b/examples/BuildingBlocks/Text/ScrollingText/ScrollingText.ino index d54c771..4061003 100644 --- a/examples/BuildingBlocks/Text/ScrollingText/ScrollingText.ino +++ b/examples/BuildingBlocks/Text/ScrollingText/ScrollingText.ino @@ -1,5 +1,5 @@ /******************************************************************* - An Example showing scolling text + An Example showing scrolling text Parts Used: ESP32 Trinity - https://github.com/witnessmenow/ESP32-Trinity @@ -14,7 +14,6 @@ Twitter: https://twitter.com/witnessmenow *******************************************************************/ - // ---------------------------- // Additional Libraries - each one of these will need to be installed. // ---------------------------- @@ -34,15 +33,15 @@ // Can be installed from the library manager // https://github.com/adafruit/Adafruit-GFX-Library -// ------------------------------------- +// -------------------------------- // ------- Matrix Config ------ -// ------------------------------------- +// -------------------------------- -const int panelResX = 64; // Number of pixels wide of each INDIVIDUAL panel module. -const int panelResY = 64; // Number of pixels tall of each INDIVIDUAL panel module. -const int panel_chain = 1; // Total number of panels chained one to another +const int panelResX = 64; // Number of pixels wide of each INDIVIDUAL panel module. +const int panelResY = 64; // Number of pixels tall of each INDIVIDUAL panel module. +const int panel_chain = 1; // Total number of panels chained one to another. -#define ENABLE_DOUBLE_BUFFER 1 // This is a good example to show the difference the +#define ENABLE_DOUBLE_BUFFER 1 // This is a good example to show the difference the // double buffer makes, it doesn't flash as much // comment this out to test without it @@ -69,9 +68,9 @@ uint16_t myBLUE = dma_display->color565(0, 0, 255); void displaySetup() { HUB75_I2S_CFG mxconfig( - panelResX, // module width - panelResY, // module height - panel_chain // Chain length + panelResX, // Module width + panelResY, // Module height + panel_chain // Chain length ); // If you are using a 64x64 matrix you need to pass a value for the E pin diff --git a/examples/Projects/FallingSand/FPS.h b/examples/Projects/FallingSand/FPS.h index 400c335..e17a3d3 100644 --- a/examples/Projects/FallingSand/FPS.h +++ b/examples/Projects/FallingSand/FPS.h @@ -9,7 +9,7 @@ Written by @tetra3dprint Twiter: https://twitter.com/tetra3dprint Github: https://github.com/tetra3dprint - + *******************************************************************/ //------------------------------------------------------------------------------------------------------------------ class FPS @@ -37,11 +37,11 @@ class FPS FrameCount++; currentMillis = millis(); passedMillis = currentMillis - startMillis; - if (passedMillis > oneThou) { + if (passedMillis > oneThou) { long remainder = passedMillis - oneThou; startMillis = currentMillis + remainder; // already started the next 1000 millis frame float FPM = (float)FrameCount / (float)passedMillis; - FrameCount = FPM * (float)remainder; // number of frames already rendered in the next 1000 millis frame + FrameCount = FPM * (float)remainder; // number of frames already rendered in the next 1000 millis frame FPSActual = FPM * oneThouF; // adjust the FPS to exactly 1000 millis } } diff --git a/examples/Projects/FallingSand/FallingSand.ino b/examples/Projects/FallingSand/FallingSand.ino index 496c61d..4a449c7 100644 --- a/examples/Projects/FallingSand/FallingSand.ino +++ b/examples/Projects/FallingSand/FallingSand.ino @@ -10,11 +10,9 @@ Tindie: https://www.tindie.com/stores/brianlough/ Twitter: https://twitter.com/witnessmenow - Parts: - ESP32 D1 Mini * - https://s.click.aliexpress.com/e/_dSi824B - ESP32 I2S Matrix Shield (From Brian's Tindie) = https://www.tindie.com/products/brianlough/esp32-i2s-matrix-shield/ + Parts Used: + ESP32 Trinity - https://github.com/witnessmenow/ESP32-Trinity - * * = Affilate If you find what I do useful and would like to support me, please consider becoming a sponsor on Github https://github.com/sponsors/witnessmenow/ @@ -55,24 +53,24 @@ // Can be installed from the library manager // https://github.com/adafruit/Adafruit-GFX-Library -// ------------------------------------- +// -------------------------------- // ------- Matrix Config ------ -// ------------------------------------- +// -------------------------------- -const int panelResX = 64; // Number of pixels wide of each INDIVIDUAL panel module. -const int panelResY = 64; // Number of pixels tall of each INDIVIDUAL panel module. -const int panel_chain = 1; // Total number of panels chained one to another +const int panelResX = 64; // Number of pixels wide of each INDIVIDUAL panel module. +const int panelResY = 64; // Number of pixels tall of each INDIVIDUAL panel module. +const int panel_chain = 1; // Total number of panels chained one to another. -// ------------------------------------- -// ------- Other Config Config ------ -// ------------------------------------- +// ------------------------------- +// ------- Other Config ------ +// ------------------------------- -#define CAP_BUTTONS 1 // Comment this out if not using a Trinity -#define TOUCH_THRESHOLD 40 // Bigger Threshold == more sensitive (resting is about 48) +#define CAP_BUTTONS 1 // Comment this out if not using a Trinity +#define TOUCH_THRESHOLD 40 // Bigger Threshold == more sensitive (resting is about 48) -#define SHOW_TIME 10 +#define SHOW_TIME 10 -#define MAX_FPS 100 // Maximum redraw rate, frames/second +#define MAX_FPS 100 // Maximum redraw rate, frames/second #define DISPLAY_FPS 50 //#define SHOW_FPS @@ -224,9 +222,9 @@ bool changeDriver = false; void displayReconfig() { HUB75_I2S_CFG mxconfig( - panelResX, // module width - panelResY, // module height - PANEL_CHAIN // Chain length + panelResX, // Module width + panelResY, // Module height + panel_chain // Chain length ); mxconfig.double_buff = true; diff --git a/examples/Projects/FallingSand/pallet.h b/examples/Projects/FallingSand/pallet.h index b87fe53..7bd5f8a 100644 --- a/examples/Projects/FallingSand/pallet.h +++ b/examples/Projects/FallingSand/pallet.h @@ -1,3 +1,3 @@ -const uint8_t PROGMEM pallet[] = {/* RGB888 R,G,B,R,G,B,R,G,B,... */ +const uint8_t PROGMEM pallet[] = {/* RGB888 R,G,B,R,G,B,R,G,B,... */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x05,0x00,0x00,0x0a,0x00,0x00,0x10,0x00,0x00,0x15,0x00,0x00,0x1b,0x00,0x00,0x20,0x00,0x00,0x25,0x00,0x00,0x2b,0x00,0x00,0x31,0x00,0x00,0x36,0x00,0x00,0x3c,0x00,0x00,0x41,0x00,0x00,0x46,0x00,0x00,0x4c,0x00,0x00,0x52,0x00,0x00,0x57,0x00,0x00,0x5d,0x00,0x00,0x62,0x00,0x00,0x68,0x00,0x00,0x6d,0x00,0x00,0x73,0x00,0x00,0x79,0x00,0x00,0x7e,0x00,0x00,0x83,0x00,0x00,0x89,0x00,0x00,0x8e,0x00,0x00,0x94,0x00,0x00,0x9a,0x00,0x00,0x9f,0x00,0x00,0xa5,0x00,0x00,0xaa,0x00,0x00,0xb0,0x00,0x00,0xb5,0x00,0x00,0xbb,0x00,0x00,0xc0,0x00,0x00,0xc6,0x00,0x00,0xcb,0x00,0x00,0xd1,0x00,0x00,0xd7,0x00,0x00,0xdc,0x00,0x00,0xe1,0x00,0x00,0xe6,0x00,0x00,0xe8,0x02,0x00,0xe9,0x08,0x00,0xe9,0x0f,0x00,0xe9,0x13,0x00,0xe9,0x16,0x00,0xe9,0x1b,0x00,0xe9,0x21,0x00,0xe9,0x26,0x00,0xe9,0x2a,0x00,0xe9,0x2e,0x00,0xe9,0x32,0x00,0xe9,0x37,0x00,0xe9,0x3b,0x00,0xe9,0x3f,0x00,0xe9,0x44,0x00,0xe9,0x4a,0x00,0xe9,0x4e,0x00,0xe9,0x52,0x00,0xe9,0x56,0x00,0xe9,0x5a,0x00,0xe9,0x5d,0x00,0xe9,0x63,0x00,0xe9,0x67,0x00,0xe9,0x6b,0x00,0xe9,0x71,0x00,0xe9,0x77,0x00,0xe9,0x78,0x00,0xe9,0x7c,0x00,0xe9,0x81,0x00,0xe9,0x86,0x00,0xe9,0x8b,0x00,0xe9,0x8f,0x00,0xe9,0x93,0x00,0xe9,0x99,0x00,0xe9,0x9d,0x00,0xe9,0xa0,0x00,0xe9,0xa4,0x00,0xe9,0xaa,0x00,0xe9,0xb0,0x00,0xe9,0xb4,0x00,0xe9,0xb5,0x00,0xe9,0xb9,0x00,0xe9,0xbe,0x00,0xe9,0xc3,0x00,0xe9,0xc9,0x00,0xe9,0xce,0x00,0xe9,0xd2,0x00,0xe9,0xd6,0x00,0xe9,0xd9,0x00,0xe9,0xdd,0x00,0xe9,0xe2,0x00,0xe9,0xe7,0x02,0xe9,0xe9,0x0e,0xe9,0xe9,0x1c,0xe9,0xe9,0x28,0xe9,0xe9,0x38,0xe9,0xe9,0x48,0xe9,0xe9,0x57,0xe9,0xe9,0x67,0xe9,0xe9,0x73,0xe9,0xe9,0x81,0xe9,0xe9,0x90,0xe9,0xe9,0xa1,0xe9,0xe9,0xb1,0xe9,0xe9,0xbf,0xe9,0xe9,0xcb,0xe9,0xe9,0xcb,0xe9,0xe9,0xcd,0xe9,0xe9,0xd9,0xe9,0xe9,0xe5,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe9,0xe8,0xe8,0xe8,0xe8,0xe8,0xe8,0xe8,0xe8,0xe8,0xe8,0xe8,0xe8,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe6,0xe6,0xe6,0xe4,0xe4,0xe4,0xe3,0xe3,0xe3,0xe0,0xe0,0xe0,0xdc,0xdc,0xdc,0xd8,0xd8,0xd8,0xd2,0xd2,0xd2,0xca,0xca,0xca,0xc1,0xc1,0xc1,0xb7,0xb7,0xb7,0xab,0xab,0xab,0x9d,0x9d,0x9d,0x8f,0x8f,0x8f,0x81,0x81,0x81,0x72,0x72,0x72,0x64,0x64,0x64,0x56,0x56,0x56,0x4a,0x4a,0x4a,0x3e,0x3e,0x3e,0x33,0x33,0x33,0x2a,0x2a,0x2a,0x22,0x22,0x22,0x1b,0x1b,0x1b,0x16,0x16,0x16,0x11,0x11,0x11,0x0d,0x0d,0x0d,0x0b,0x0b,0x0b,0x08,0x08,0x08,0x07,0x07,0x07,0x06,0x06,0x06,0x05,0x05,0x05,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x02,0x02,0x02,0x02,0x02,0x02,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, }; diff --git a/examples/Projects/TrafficLight/TrafficLight.ino b/examples/Projects/TrafficLight/TrafficLight.ino index 43c4135..3df914e 100644 --- a/examples/Projects/TrafficLight/TrafficLight.ino +++ b/examples/Projects/TrafficLight/TrafficLight.ino @@ -34,13 +34,13 @@ // Can be installed from the library manager // https://github.com/adafruit/Adafruit-GFX-Library -// ------------------------------------- +// -------------------------------- // ------- Matrix Config ------ -// ------------------------------------- +// -------------------------------- -const int panelResX = 64; // Number of pixels wide of each INDIVIDUAL panel module. -const int panelResY = 32; // Number of pixels tall of each INDIVIDUAL panel module. -const int panel_chain = 1; // Total number of panels chained one to another +const int panelResX = 64; // Number of pixels wide of each INDIVIDUAL panel module. +const int panelResY = 32; // Number of pixels tall of each INDIVIDUAL panel module. +const int panel_chain = 1; // Total number of panels chained one to another. // See the "displaySetup" method for more display config options @@ -58,9 +58,9 @@ uint16_t myOrange = dma_display->color565(255, 165, 0); void displaySetup() { HUB75_I2S_CFG mxconfig( - panelResX, // module width - panelResY, // module height - panel_chain // Chain length + panelResX, // Module width + panelResY, // Module height + panel_chain // Chain length ); // If you are using a 64x64 matrix you need to pass a value for the E pin diff --git a/examples/Projects/WifiTetrisClock/WifiTetrisClock.ino b/examples/Projects/WifiTetrisClock/WifiTetrisClock.ino index 0958150..3d6415e 100644 --- a/examples/Projects/WifiTetrisClock/WifiTetrisClock.ino +++ b/examples/Projects/WifiTetrisClock/WifiTetrisClock.ino @@ -5,10 +5,7 @@ For use with my I2S Matrix Shield. Parts Used: - ESP32 D1 Mini * - https://s.click.aliexpress.com/e/_dSi824B - ESP32 I2S Matrix Shield (From my Tindie) = https://www.tindie.com/products/brianlough/esp32-i2s-matrix-shield/ - - = Affilate + ESP32 Trinity - https://github.com/witnessmenow/ESP32-Trinity If you find what I do useful and would like to support me, please consider becoming a sponsor on Github @@ -38,7 +35,7 @@ #include // This library draws out characters using a tetris block -// amimation +// animation // Can be installed from the library manager // https://github.com/toblum/TetrisAnimation @@ -51,7 +48,7 @@ // Dependency Libraries - each one of these will need to be installed. // ---------------------------- -// Adafruit GFX library is a dependancy for the matrix Library +// Adafruit GFX library is a dependency for the matrix Library // Can be installed from the library manager // https://github.com/adafruit/Adafruit-GFX-Library @@ -68,17 +65,17 @@ char password[] = "password"; // your network key // https://en.wikipedia.org/wiki/List_of_tz_database_time_zones #define MYTIMEZONE "Europe/Dublin" -// ------------------------------------- +// -------------------------------- // ------- Matrix Config ------ -// ------------------------------------- +// -------------------------------- -#define PANEL_RES_X 64 // Number of pixels wide of each INDIVIDUAL panel module. -#define PANEL_RES_Y 32 // Number of pixels tall of each INDIVIDUAL panel module. -#define PANEL_CHAIN 1 // Total number of panels chained one to another +const int panelResX = 64; // Number of pixels wide of each INDIVIDUAL panel module. +const int panelResY = 32; // Number of pixels tall of each INDIVIDUAL panel module. +const int panel_chain = 1; // Total number of panels chained one to another. -// ------------------------------------- +// ------------------------------- // ------- Clock Config ------ -// ------------------------------------- +// ------------------------------- // Sets whether the clock should be 12 hour format or not. bool twelveHourFormat = true; @@ -191,9 +188,9 @@ void setup() { Serial.begin(115200); HUB75_I2S_CFG mxconfig( - PANEL_RES_X, // module width - PANEL_RES_Y, // module height - PANEL_CHAIN // Chain length + panelResX, // Module width + panelResY, // Module height + panel_chain // Chain length ); mxconfig.double_buff = true; diff --git a/examples/Projects/WifiTetrisClockWifiManager/WifiTetrisClockWifiManager.ino b/examples/Projects/WifiTetrisClockWifiManager/WifiTetrisClockWifiManager.ino index 68877cc..c325104 100644 --- a/examples/Projects/WifiTetrisClockWifiManager/WifiTetrisClockWifiManager.ino +++ b/examples/Projects/WifiTetrisClockWifiManager/WifiTetrisClockWifiManager.ino @@ -5,10 +5,7 @@ For use with my I2S Matrix Shield. Parts Used: - ESP32 D1 Mini * - https://s.click.aliexpress.com/e/_dSi824B - ESP32 I2S Matrix Shield (From my Tindie) = https://www.tindie.com/products/brianlough/esp32-i2s-matrix-shield/ - - = Affilate + ESP32 Trinity - https://github.com/witnessmenow/ESP32-Trinity If you find what I do useful and would like to support me, please consider becoming a sponsor on Github @@ -19,6 +16,7 @@ Tindie: https://www.tindie.com/stores/brianlough/ Twitter: https://twitter.com/witnessmenow *******************************************************************/ + // ---------------------------- // Library Defines - Need to be defined before library import // ---------------------------- @@ -57,7 +55,7 @@ #include // This library draws out characters using a tetris block -// amimation +// animation // Can be installed from the library manager // https://github.com/toblum/TetrisAnimation @@ -75,7 +73,7 @@ // Dependency Libraries - each one of these will need to be installed. // ---------------------------- -// Adafruit GFX library is a dependancy for the matrix Library +// Adafruit GFX library is a dependency for the matrix Library // Can be installed from the library manager // https://github.com/adafruit/Adafruit-GFX-Library @@ -85,24 +83,24 @@ // ------------------------------------- // Wifi network station credentials -char ssid[] = "SSID"; // your network SSID (name) -char password[] = "password"; // your network key +char ssid[] = "SSID"; // your network SSID (name) +char password[] = "password"; // your network key // Set a timezone using the following list // https://en.wikipedia.org/wiki/List_of_tz_database_time_zones #define MYTIMEZONE "Europe/Dublin" -// ------------------------------------- +// -------------------------------- // ------- Matrix Config ------ -// ------------------------------------- +// -------------------------------- -#define PANEL_RES_X 64 // Number of pixels wide of each INDIVIDUAL panel module. -#define PANEL_RES_Y 32 // Number of pixels tall of each INDIVIDUAL panel module. -#define PANEL_CHAIN 1 // Total number of panels chained one to another +const int panelResX = 64; // Number of pixels wide of each INDIVIDUAL panel module. +const int panelResY = 32; // Number of pixels tall of each INDIVIDUAL panel module. +const int panel_chain = 1; // Total number of panels chained one to another. -// ------------------------------------- +// ------------------------------- // ------- Clock Config ------ -// ------------------------------------- +// ------------------------------- // Sets whether the clock should be 12 hour format or not. bool twelveHourFormat = true; @@ -113,16 +111,16 @@ bool twelveHourFormat = true; // When true, all digits will be replaced every minute. bool forceRefresh = true; -// ------------------------------------- +// ------------------------------- // ------- Other Config ------ -// ------------------------------------- +// ------------------------------- const int PIN_LED = 2; #define TETRIS_CONFIG_JSON "/tetris_config.json" // Number of seconds after reset during which a -// subseqent reset will be considered a double reset. +// subsequent reset will be considered a double reset. #define DRD_TIMEOUT 10 // RTC Memory Address for the DoubleResetDetector to use @@ -261,7 +259,7 @@ void configModeCallback (WiFiManager *myWiFiManager) { dma_display->setTextColor(tetris.tetrisBLUE); dma_display->setCursor(0, 0); dma_display->print(myWiFiManager->getConfigPortalSSID()); - + dma_display->setTextWrap(true); dma_display->setTextColor(tetris.tetrisRED); dma_display->setCursor(0, 8); @@ -343,9 +341,9 @@ bool setupSpiffs() { void configDisplay() { HUB75_I2S_CFG mxconfig( - PANEL_RES_X, // module width - 32, // module height - PANEL_CHAIN // Chain length + panelResX, // Module width + panelResY, // Module height + panel_chain // Chain length ); if (matrixIs64) { diff --git a/examples/Projects/YouTubeLivestreamDraw/YouTubeLivestreamDraw.ino b/examples/Projects/YouTubeLivestreamDraw/YouTubeLivestreamDraw.ino index 6780df3..6c34022 100644 --- a/examples/Projects/YouTubeLivestreamDraw/YouTubeLivestreamDraw.ino +++ b/examples/Projects/YouTubeLivestreamDraw/YouTubeLivestreamDraw.ino @@ -6,17 +6,13 @@ For use with my I2S Matrix Shield. - Parts: - ESP32 Mini Kit (ESP32 D1 Mini) * - https://s.click.aliexpress.com/e/_AYPehO (pick the CP2104 Drive version) - ESP32 I2S Matrix Shield (From my Tindie) = https://www.tindie.com/products/brianlough/esp32-i2s-matrix-shield/ - - * * = Affiliate + Parts Used: + ESP32 Trinity - https://github.com/witnessmenow/ESP32-Trinity If you find what I do useful and would like to support me, please consider becoming a sponsor on Github https://github.com/sponsors/witnessmenow/ - Written by Brian Lough YouTube: https://www.youtube.com/brianlough Tindie: https://www.tindie.com/stores/brianlough/ @@ -64,7 +60,7 @@ char ssid[] = "SSID"; // your network SSID (name) char password[] = "password"; // your network password -// You need 1 API key per roughly 2 hours of chat you plan to monitor +// You need 1 API key per roughly 2 hours of chat you plan to monitor // So you can pass in just one: #define YT_API_TOKEN "AAAAAAAAAABBBBBBBBBBBCCCCCCCCCCCDDDDDDDDDDD" @@ -83,13 +79,13 @@ char password[] = "password"; // your network password //------- ---------------------- ------ -// ------------------------------------- +// -------------------------------- // ------- Matrix Config ------ -// ------------------------------------- +// -------------------------------- -#define PANEL_RES_X 64 // Number of pixels wide of each INDIVIDUAL panel module. -#define PANEL_RES_Y 64 // Number of pixels tall of each INDIVIDUAL panel module. -#define PANEL_CHAIN 1 // Total number of panels chained one to another +const int panelResX = 64; // Number of pixels wide of each INDIVIDUAL panel module. +const int panelResY = 32; // Number of pixels tall of each INDIVIDUAL panel module. +const int panel_chain = 1; // Total number of panels chained one to another. MatrixPanel_I2S_DMA *dma_display = nullptr; @@ -128,9 +124,9 @@ char lastMessageReceived[YOUTUBE_MSG_CHAR_LENGTH]; void setup() { HUB75_I2S_CFG mxconfig( - PANEL_RES_X, // module width - PANEL_RES_Y, // module height - PANEL_CHAIN // Chain length + panelResX, // Module width + panelResY, // Module height + panel_chain // Chain length ); mxconfig.gpio.e = 18; @@ -214,13 +210,13 @@ void drawChatPixel(char *msg) { // Token should now == x if (token != NULL) { x = atoi(token); - if (x >= PANEL_RES_X || x < 0) + if (x >= panelResX || x < 0) return; token = strtok(NULL, " "); // Token should now == y if (token != NULL) { y = atoi(token); - if (y >= PANEL_RES_Y || y < 0) + if (y >= panelResY || y < 0) return; } else { //Not Valid @@ -248,7 +244,7 @@ bool processMessage(ChatMessage chatMessage, int index, int numMessages) { Serial.print("Received command from "); Serial.println(chatMessage.displayName); drawChatPixel((char *) chatMessage.displayMessage); - } + } break; case yt_message_type_superChat: case yt_message_type_superSticker: @@ -323,7 +319,7 @@ void loop() { if (haveLiveChatId) { // The processMessage Callback will be called for every message found. - ChatResponses responses = ytVideo.getChatMessages(processMessage, liveChatId); + ChatResponses responses = ytVideo.getChatMessages(processMessage, liveChatId); if (!responses.error) { Serial.println("done"); Serial.print("Polling interval: "); diff --git a/examples/TrinityFeatures/LDRAutoBrightness/LDRAutoBrightness.ino b/examples/TrinityFeatures/LDRAutoBrightness/LDRAutoBrightness.ino index 0c24849..e38bfb3 100644 --- a/examples/TrinityFeatures/LDRAutoBrightness/LDRAutoBrightness.ino +++ b/examples/TrinityFeatures/LDRAutoBrightness/LDRAutoBrightness.ino @@ -1,5 +1,5 @@ // An example of changing the brightness of the panel -// based on the analog reading +// based on the analog reading // The idea would be to connect it to an LDR // https://create.arduino.cc/projecthub/SBR/working-with-light-dependent-resistor-ldr-1ded4f @@ -34,9 +34,9 @@ void setup() { Serial.begin(115200); HUB75_I2S_CFG mxconfig; - mxconfig.mx_height = PANEL_HEIGHT; // we have 64 pix heigh panels + mxconfig.mx_height = PANEL_HEIGHT; // we have 64 pix height panels mxconfig.gpio.e = 18; - + // May or may not be needed depending on your matrix //mxconfig.clkphase = false; diff --git a/examples/TrinityFeatures/SDCardTest/SDCardTest.ino b/examples/TrinityFeatures/SDCardTest/SDCardTest.ino index afe30f7..2e30255 100644 --- a/examples/TrinityFeatures/SDCardTest/SDCardTest.ino +++ b/examples/TrinityFeatures/SDCardTest/SDCardTest.ino @@ -3,7 +3,7 @@ Based on the basic SD_Test example in the ESP32 library. - The deafult SPI pins are being used by the matrix library + The default SPI pins are being used by the matrix library so we need to use custom ones. SCLK 33 @@ -19,16 +19,12 @@ https://github.com/witnessmenow/ESP32-i2s-Matrix-Shield/blob/master/FAQ.md#can-i-connect-a-spi-sensordevice-to-the-shield Parts Used: - ESP32 D1 Mini * - https://s.click.aliexpress.com/e/_dSi824B - ESP32 I2S Matrix Shield (From my Tindie) = https://www.tindie.com/products/brianlough/esp32-i2s-matrix-shield/ - - * * = Affilate + ESP32 Trinity - https://github.com/witnessmenow/ESP32-Trinity If you find what I do useful and would like to support me, please consider becoming a sponsor on Github https://github.com/sponsors/witnessmenow/ - Written by Brian Lough YouTube: https://www.youtube.com/brianlough Tindie: https://www.tindie.com/stores/brianlough/ diff --git a/examples/TrinityFeatures/TouchPointTest/TouchPointTest.ino b/examples/TrinityFeatures/TouchPointTest/TouchPointTest.ino index 6b5cf8c..597318e 100644 --- a/examples/TrinityFeatures/TouchPointTest/TouchPointTest.ino +++ b/examples/TrinityFeatures/TouchPointTest/TouchPointTest.ino @@ -1,5 +1,5 @@ /* -This is un example howto use Touch Intrrerupts +This is an example how to use Touch Interrupts The bigger the threshold, the more sensible is the touch */