diff --git a/libraries/Arduino_LED_Matrix/examples/DisplaySingleFrame/DisplaySingleFrame.ino b/libraries/Arduino_LED_Matrix/examples/DisplaySingleFrame/DisplaySingleFrame.ino index 24a368143..a6ba766ae 100644 --- a/libraries/Arduino_LED_Matrix/examples/DisplaySingleFrame/DisplaySingleFrame.ino +++ b/libraries/Arduino_LED_Matrix/examples/DisplaySingleFrame/DisplaySingleFrame.ino @@ -8,7 +8,7 @@ */ #include "Arduino_LED_Matrix.h" // Include the LED_Matrix library -#include "frames.h" // Include a header file containing frame data +#include "frames.h" // Include a header file containing some custom icons ArduinoLEDMatrix matrix; // Create an instance of the ArduinoLEDMatrix class @@ -30,8 +30,8 @@ void loop() { matrix.loadFrame(happy); delay(500); - // Load and display the "heart" frame on the LED matrix - matrix.loadFrame(heart); + // Load and display the "big heart" frame provided by the library + matrix.loadFrame(LEDMATRIX_HEART_BIG); delay(500); // Print the current value of millis() to the serial monitor diff --git a/libraries/Arduino_LED_Matrix/library.properties b/libraries/Arduino_LED_Matrix/library.properties index 31e0c5bfa..0e63a3d16 100644 --- a/libraries/Arduino_LED_Matrix/library.properties +++ b/libraries/Arduino_LED_Matrix/library.properties @@ -1,5 +1,5 @@ name=LED_Matrix -version=1.0.0 +version=1.1.0 author=Arduino maintainer=Arduino sentence=LED matrix driver for UNO R4 WiFi diff --git a/libraries/Arduino_LED_Matrix/src/Arduino_LED_Matrix.h b/libraries/Arduino_LED_Matrix/src/Arduino_LED_Matrix.h index 2ba2903a6..3bbb76887 100644 --- a/libraries/Arduino_LED_Matrix/src/Arduino_LED_Matrix.h +++ b/libraries/Arduino_LED_Matrix/src/Arduino_LED_Matrix.h @@ -1,5 +1,6 @@ #include "Arduino.h" #include "FspTimer.h" +#include "gallery.h" #define NUM_LEDS 96 diff --git a/libraries/Arduino_LED_Matrix/src/gallery.h b/libraries/Arduino_LED_Matrix/src/gallery.h new file mode 100644 index 000000000..81a9a3e9d --- /dev/null +++ b/libraries/Arduino_LED_Matrix/src/gallery.h @@ -0,0 +1,574 @@ +/* Icons */ +constexpr uint32_t LEDMATRIX_BLUETOOTH[] = { 0x10428, 0xa4517ff0, 0x50088104, 66 }; +constexpr uint32_t LEDMATRIX_BOOTLOADER_ON[] = { 0x4015, 0x2482082, 0x81100e0, 66 }; +constexpr uint32_t LEDMATRIX_CHIP[] = { 0x1503f, 0x81103181, 0x103f8150, 66 }; +constexpr uint32_t LEDMATRIX_CLOUD_WIFI[] = { 0x18464841, 0x26549558, 0x54652188, 66 }; +constexpr uint32_t LEDMATRIX_DANGER[] = { 0x400a015, 0x1502082, 0x484047fc, 66 }; +constexpr uint32_t LEDMATRIX_EMOJI_BASIC[] = { 0x19819, 0x80000001, 0xf8000000, 66 }; +constexpr uint32_t LEDMATRIX_EMOJI_HAPPY[] = { 0x19819, 0x80000001, 0x81f8000, 66 }; +constexpr uint32_t LEDMATRIX_EMOJI_SAD[] = { 0x19819, 0x80000001, 0xf8108000, 66 }; +constexpr uint32_t LEDMATRIX_HEART_BIG[] = { 0x3184a444, 0x44042081, 0x100a0040, 66 }; +constexpr uint32_t LEDMATRIX_HEART_SMALL[] = { 0xa, 0x1501100, 0xa0040000, 66 }; +constexpr uint32_t LEDMATRIX_LIKE[] = { 0x1003005, 0x39c2842, 0x842843f8, 66 }; +constexpr uint32_t LEDMATRIX_MUSIC_NOTE[] = { 0x1f81f810, 0x81081081, 0x18318300, 66 }; +constexpr uint32_t LEDMATRIX_RESISTOR[] = { 0x7f, 0xed437fe0, 0x0, 66 }; +constexpr uint32_t LEDMATRIX_UNO[] = { 0x7fc404e0, 0x4e024024, 0xf24027fc, 66 }; + +/* Animations */ +constexpr uint32_t LEDMATRIX_ANIMATION_STARTUP[][4] = { + { 0x0, 0x0, 0x0, 66 }, + { 0x0, 0x800, 0x0, 66 }, + { 0x0, 0x801, 0x0, 40 }, + { 0x0, 0x803, 0x0, 40 }, + { 0x0, 0x807, 0x0, 40 }, + { 0x0, 0x8807, 0x0, 40 }, + { 0x0, 0x8008807, 0x0, 40 }, + { 0x80, 0x8008807, 0x0, 40 }, + { 0x40080, 0x8008807, 0x0, 30 }, + { 0x60080, 0x8008807, 0x0, 30 }, + { 0x70080, 0x8008807, 0x0, 30 }, + { 0x70088, 0x8008807, 0x0, 30 }, + { 0x70088, 0x8408807, 0x0, 30 }, + { 0x70088, 0x8408a07, 0x0, 30 }, + { 0x70088, 0x8408a07, 0x10000000, 30 }, + { 0x70088, 0x8408a07, 0x18000000, 30 }, + { 0x70088, 0x8408a07, 0x1c000000, 30 }, + { 0x70088, 0x8408a27, 0x1c000000, 40 }, + { 0x70088, 0x8428a27, 0x1c000000, 40 }, + { 0x70088, 0x28428a27, 0x1c000000, 40 }, + { 0x70488, 0x28428a27, 0x1c000000, 40 }, + { 0x70c88, 0x28428a27, 0x1c000000, 40 }, + { 0x71c88, 0x28428a27, 0x1c000000, 66 }, + { 0x71c8a, 0x28428a27, 0x1c000000, 240 }, + { 0x71d8a, 0xa842aa27, 0x1c000000, 66 }, + { 0x171c8a, 0x2a4a8a27, 0x1c000000, 400 }, + { 0x2e3814, 0x4494144e, 0x38000000, 66 }, + { 0x4c7028, 0x9929289c, 0x71000000, 66 }, + { 0x88e151, 0x22535128, 0xe2000000, 66 }, + { 0x101c3a2, 0x44a7a241, 0xc4000000, 66 }, + { 0x2038644, 0x994f4493, 0x89000000, 66 }, + { 0x4070c89, 0x229e8927, 0x12000000, 66 }, + { 0x80e1912, 0x553d125e, 0x25000000, 66 }, + { 0x100c3324, 0xaa7b24ac, 0x4a000000, 66 }, + { 0x20086749, 0x44f74948, 0x94000000, 66 }, + { 0x4000ce92, 0x99ee9291, 0x29000000, 66 }, + { 0x80019c25, 0x23dc2522, 0x52000000, 66 }, + { 0x3394a, 0x57b94a54, 0xa5000000, 100 }, + { 0x67394, 0xaf7294a9, 0x4b000000, 66 }, + { 0xce729, 0x4ee42942, 0x97000000, 66 }, + { 0x9ce52, 0x9dc95295, 0x2e000000, 66 }, + { 0x39ca5, 0x2b92a52a, 0x5c000000, 66 }, + { 0x7394a, 0x57254a54, 0xb8000000, 66 }, + { 0xe7294, 0xae4a94a9, 0x71000000, 66 }, + { 0xce429, 0x4c942942, 0xe3000000, 66 }, + { 0x9c952, 0x99295295, 0xc6000000, 66 }, + { 0x392a5, 0x2252a52b, 0x8c000000, 66 }, + { 0x7254a, 0x44a44a47, 0x19000000, 66 }, + { 0xe4b94, 0x9949949e, 0x33000000, 66 }, + { 0xc9729, 0x2292292c, 0x67000000, 66 }, + { 0x92e52, 0x45245248, 0xce000000, 66 }, + { 0x25da4, 0x9a49a491, 0x9d000000, 66 }, + { 0x4ba49, 0x34924923, 0x3a000000, 66 }, + { 0x97492, 0x69259246, 0x74000000, 66 }, + { 0x2e924, 0xd24b249c, 0xe9000000, 66 }, + { 0x5d249, 0xa4964929, 0xd2000000, 66 }, + { 0xba493, 0x592d9253, 0xa4000000, 66 }, + { 0x74926, 0xa25a24a7, 0x49000000, 66 }, + { 0xe934d, 0x44b4494e, 0x93000000, 66 }, + { 0xd269a, 0x9969929d, 0x26000000, 66 }, + { 0xa4c35, 0x22d2252a, 0x4c000000, 66 }, + { 0x4986a, 0x45a44a44, 0x98000000, 66 }, + { 0x930d4, 0x8b489489, 0x30000000, 66 }, + { 0x260a9, 0x6902902, 0x60000000, 66 }, + { 0x4c052, 0xd205204, 0xc0000000, 66 }, + { 0x980a4, 0xa40a409, 0x80000000, 66 }, + { 0x30048, 0x4804803, 0x0, 66 }, + { 0x60090, 0x9009006, 0x0, 66 }, + { 0xc0020, 0x200200c, 0x0, 66 }, + { 0x80040, 0x4004008, 0x0, 66 }, + { 0x80, 0x8008000, 0x0, 66 }, + { 0x0, 0x0, 0x0, 66 } +}; +constexpr uint32_t LEDMATRIX_ANIMATION_TETRIS_INTRO[][4] = { + { 0xe0000000, 0x0, 0x0, 66 }, + { 0x400e0000, 0x0, 0x0, 66 }, + { 0x400e0, 0x0, 0x0, 66 }, + { 0x40, 0xe000000, 0x0, 66 }, + { 0x3000000, 0x400e000, 0x0, 66 }, + { 0x3003000, 0x400e, 0x0, 66 }, + { 0x3003, 0x4, 0xe00000, 66 }, + { 0x3, 0x300000, 0x400e00, 66 }, + { 0x0, 0x300300, 0x400e00, 66 }, + { 0x1c000000, 0x300, 0x30400e00, 66 }, + { 0x401c000, 0x0, 0x30430e00, 66 }, + { 0x401c, 0x0, 0x430e30, 66 }, + { 0x4, 0x1c00000, 0x430e30, 66 }, + { 0x0, 0x401c00, 0x430e30, 66 }, + { 0x800000, 0x401, 0xc0430e30, 66 }, + { 0x800800, 0x0, 0x405f0e30, 66 }, + { 0x800800, 0x80000000, 0x470ff0, 66 }, + { 0x800800, 0x80080000, 0x470ff0, 66 }, + { 0x800, 0x80080080, 0x470ff0, 66 }, + { 0x38000000, 0x80080080, 0x8470ff0, 66 }, + { 0x10038000, 0x80080, 0x8478ff0, 66 }, + { 0x10038, 0x80, 0x8478ff8, 66 }, + { 0x700010, 0x3800080, 0x8478ff8, 66 }, + { 0x400700, 0x1003880, 0x8478ff8, 66 }, + { 0x400, 0x70001083, 0x88478ff8, 66 }, + { 0xf000000, 0x40070081, 0x87f8ff8, 66 }, + { 0xf000, 0x400f1, 0x87f8ff8, 66 }, + { 0x8000000f, 0xc1, 0xf7f8ff8, 66 }, + { 0xc0080000, 0xf00081, 0xc7ffff8, 66 }, + { 0x400c0080, 0xf81, 0x87fcfff, 66 }, + { 0x3400c0, 0x8000081, 0xf87fcfff, 66 }, + { 0x20200340, 0xc008081, 0xf87fcfff, 66 }, + { 0x38220200, 0x3400c089, 0xf87fcfff, 66 }, + { 0x38220, 0x2003408d, 0xf8ffcfff, 66 }, + { 0x86100038, 0x220240bd, 0xf8ffcfff, 66 }, + { 0xec186100, 0x38260ad, 0xfbffcfff, 66 }, + { 0x3ec186, 0x100078af, 0xfaffffff, 66 }, + { 0x114003ec, 0x186178af, 0xfaffffff, 66 }, + { 0x3b411400, 0x3ec1febf, 0xfaffffff, 66 }, + { 0x143b411, 0x4ec3febf, 0xfbffffff, 66 }, + { 0xc040143b, 0x4fd7febf, 0xfbffffff, 66 }, + { 0xc60c0439, 0x4ff7ffff, 0xfbffffff, 66 }, + { 0x33c60f9, 0x4ff7ffff, 0xffffffff, 66 }, + { 0x3cbc33ff, 0x4ff7ffff, 0xffffffff, 66 }, + { 0x8ffbff, 0x7ff7ffff, 0xffffffff, 66 }, + { 0xf0cffbff, 0xfff7ffff, 0xffffffff, 66 }, + { 0xfe1fffff, 0xffffffff, 0xffffffff, 66 }, + { 0xffffffff, 0xffffffff, 0xffffffff, 66 }, + { 0x7fffffff, 0xffffffff, 0xfffff7ff, 66 }, + { 0x3fe7ffff, 0xffffffff, 0xff7ff3fe, 66 }, + { 0x1fc3fe7f, 0xfffffff7, 0xff3fe1fc, 66 }, + { 0xf81fc3f, 0xe7ff7ff3, 0xfe1fc0f8, 66 }, + { 0x500f81f, 0xc3fe3fe1, 0xfc0f8070, 66 }, + { 0x500f, 0x81fc1fc0, 0xf8070020, 66 }, + { 0x5, 0xf80f80, 0x70020000, 66 }, + { 0x5, 0xa80880, 0x50020000, 600 }, + { 0xd812, 0x41040880, 0x50020000, 200 }, + { 0x5, 0xa80880, 0x50020000, 600 } +}; +constexpr uint32_t LEDMATRIX_ANIMATION_ATMEGA[][4] = { + { 0x0, 0xffeffe0, 0x0, 66 }, + { 0x55, 0x4ffeffe5, 0x54000000, 66 }, + { 0x95255, 0x4ffeffe5, 0x54952000, 66 }, + { 0x24995255, 0x4ffeffe5, 0x54952249, 66 }, + { 0x24995200, 0xffeffe0, 0x952249, 66 }, + { 0x24900000, 0xffeffe0, 0x249, 66 }, + { 0x0, 0xffeffe0, 0x0, 66 } +}; +constexpr uint32_t LEDMATRIX_ANIMATION_LED_BLINK_HORIZONTAL[][4] = { + { 0x403c047, 0x84405fc3, 0xc0040000, 1000 }, + { 0x403c07f, 0x87c067c3, 0xc0040000, 1000 }, + { 0x403c047, 0x84405fc3, 0xc0040000, 1000 }, + { 0x403c07f, 0x87c067c3, 0xc0040000, 1000 } +}; +constexpr uint32_t LEDMATRIX_ANIMATION_LED_BLINK_VERTICAL[][4] = { + { 0x1c022032, 0x3207f01, 0x40140100, 1000 }, + { 0x1c03e02e, 0x2e07f01, 0x40140100, 1000 }, + { 0x1c022032, 0x3207f01, 0x40140100, 1000 }, + { 0x1c03e02e, 0x2e07f01, 0x40140100, 1000 } +}; +constexpr uint32_t LEDMATRIX_ANIMATION_ARROWS_COMPASS[][4] = { + { 0x4008, 0x1780800, 0x40000000, 500 }, + { 0x1c010, 0x1400200, 0x10000000, 500 }, + { 0x400a, 0x1500400, 0x40040000, 500 }, + { 0x7001, 0x500801, 0x0, 500 }, + { 0x4002, 0x3d00200, 0x40000000, 500 }, + { 0x10008, 0x500100, 0x70000000, 500 }, + { 0x4004004, 0x1500a00, 0x40000000, 500 }, + { 0x1002, 0x1401001, 0xc0000000, 500 } +}; +constexpr uint32_t LEDMATRIX_ANIMATION_AUDIO_WAVEFORM[][4] = { + { 0x80080, 0x808808a, 0x2aa2aaaa, 100 }, + { 0x800, 0x880882aa, 0x2aaaaaaa, 100 }, + { 0x0, 0xa00a80aa, 0xaa2aaaa, 100 }, + { 0x200, 0x20020220, 0x22a2aaaa, 100 }, + { 0x0, 0x200280a8, 0x2a8aaaaa, 100 }, + { 0x80, 0x8808828a, 0x2aaaaaaa, 100 }, + { 0x80080, 0x882a8aa, 0xaaaaaaaa, 100 }, + { 0x80280280, 0xa80a80aa, 0x2aaaaaaa, 100 }, + { 0x8208, 0x2882a8aa, 0x8aaaaaaa, 100 }, + { 0x80, 0x80288aa, 0x8aaaaaaa, 100 } +}; +constexpr uint32_t LEDMATRIX_ANIMATION_BATTERY[][4] = { + { 0xffe80280, 0x38018038, 0x2ffe000, 500 }, + { 0xffe802a0, 0x3a01a038, 0x2ffe000, 500 }, + { 0xffe802a8, 0x3a81a838, 0x2ffe000, 500 }, + { 0xffe802aa, 0x3aa1aa38, 0x2ffe000, 500 }, + { 0xffe802aa, 0xbaa9aab8, 0x2ffe000, 500 } +}; +constexpr uint32_t LEDMATRIX_ANIMATION_BOUNCING_BALL[][4] = { + { 0x0, 0x20050050, 0x2000000, 100 }, + { 0x3, 0x480480, 0x30000000, 100 }, + { 0xc, 0x1201200, 0xc0000000, 100 }, + { 0x18, 0x2402401, 0x80000000, 200 }, + { 0xc, 0x1201200, 0xc0000000, 100 }, + { 0x3, 0x480480, 0x30000000, 100 }, + { 0x0, 0x20050050, 0x2000000, 100 }, + { 0x3, 0x480480, 0x30000000, 100 }, + { 0xc, 0x1201200, 0xc0000000, 100 }, + { 0x18, 0x2402401, 0x80000000, 200 }, + { 0xc, 0x1201200, 0xc0000000, 100 }, + { 0x3, 0x480480, 0x30000000, 100 } +}; +constexpr uint32_t LEDMATRIX_ANIMATION_BUG[][4] = { + { 0x8037fc20, 0x8a0b60c2, 0xa8a0b7fc, 200 }, + { 0xc013fe10, 0x4d053061, 0x54d053fe, 200 }, + { 0x8037fc20, 0x8a0b60c2, 0xa8a0b7fc, 200 }, + { 0xc013fe10, 0x4d053061, 0x54d053fe, 200 }, + { 0x8037fc20, 0x8a0b60c2, 0xa8a0b7fc, 200 }, + { 0xc013fe10, 0x4d053061, 0x54d053fe, 200 }, + { 0x8037fc20, 0x8a0b60c2, 0xa8a0b7fc, 200 }, + { 0xc013fe10, 0x4d053061, 0x54d053fe, 200 } +}; +constexpr uint32_t LEDMATRIX_ANIMATION_CHECK[][4] = { + { 0x0, 0x0, 0x0, 100 }, + { 0x0, 0x2000, 0x0, 100 }, + { 0x0, 0x2001, 0x0, 100 }, + { 0x0, 0x2001, 0x80000, 100 }, + { 0x0, 0x2001, 0x40080000, 100 }, + { 0x0, 0x2201, 0x40080000, 100 }, + { 0x0, 0x102201, 0x40080000, 100 }, + { 0x0, 0x80102201, 0x40080000, 100 }, + { 0x400, 0x80102201, 0x40080000, 100 } +}; +constexpr uint32_t LEDMATRIX_ANIMATION_CLOUD[][4] = { + { 0x18025842, 0x44428018, 0x14023fc, 600 }, + { 0xc012c21, 0x24228018, 0x14023fc, 600 } +}; +constexpr uint32_t LEDMATRIX_ANIMATION_DOWNLOAD[][4] = { + { 0x4004004, 0x1500a04, 0x444047fc, 200 }, + { 0x4004, 0x401504, 0xa44447fc, 200 } +}; +constexpr uint32_t LEDMATRIX_ANIMATION_DVD[][4] = { + { 0x0, 0x1000000, 0x0, 600 }, + { 0x0, 0x800, 0x0, 600 }, + { 0x0, 0x0, 0x40000000, 600 }, + { 0x0, 0x0, 0x20000, 600 }, + { 0x0, 0x0, 0x10, 600 }, + { 0x0, 0x0, 0x8000, 600 }, + { 0x0, 0x0, 0x4000000, 600 }, + { 0x0, 0x20, 0x0, 600 }, + { 0x0, 0x10000, 0x0, 600 }, + { 0x0, 0x20000000, 0x0, 600 }, + { 0x400, 0x0, 0x0, 600 }, + { 0x800000, 0x0, 0x0, 600 }, + { 0x1000, 0x0, 0x0, 600 }, + { 0x2, 0x0, 0x0, 600 }, + { 0x0, 0x400000, 0x0, 600 }, + { 0x0, 0x800, 0x0, 600 }, + { 0x0, 0x1, 0x0, 600 }, + { 0x0, 0x0, 0x200000, 600 }, + { 0x0, 0x0, 0x400, 600 }, + { 0x0, 0x0, 0x800000, 600 }, + { 0x0, 0x4, 0x0, 600 }, + { 0x0, 0x2000, 0x0, 600 }, + { 0x0, 0x1000000, 0x0, 600 }, + { 0x8, 0x0, 0x0, 600 }, + { 0x4000, 0x0, 0x0, 600 }, + { 0x2000000, 0x0, 0x0, 600 }, + { 0x1000, 0x0, 0x0, 600 }, + { 0x0, 0x80000000, 0x0, 600 }, + { 0x0, 0x40000, 0x0, 600 }, + { 0x0, 0x20, 0x0, 600 }, + { 0x0, 0x0, 0x1000000, 600 }, + { 0x0, 0x0, 0x2000, 600 }, + { 0x0, 0x0, 0x4, 600 }, + { 0x0, 0x0, 0x8000, 600 }, + { 0x0, 0x0, 0x10000000, 600 }, + { 0x0, 0x200, 0x0, 600 }, + { 0x0, 0x400000, 0x0, 600 }, + { 0x8, 0x0, 0x0, 600 }, + { 0x10000, 0x0, 0x0, 600 }, + { 0x20000000, 0x0, 0x0, 600 }, + { 0x40000, 0x0, 0x0, 600 }, + { 0x80, 0x0, 0x0, 600 }, + { 0x0, 0x4000000, 0x0, 600 }, + { 0x0, 0x2000, 0x0, 600 }, + { 0x0, 0x1, 0x0, 600 }, + { 0x0, 0x0, 0x80000, 600 }, + { 0x0, 0x0, 0x40, 600 }, + { 0x0, 0x0, 0x20000, 600 }, + { 0x0, 0x0, 0x10000000, 600 }, + { 0x0, 0x80, 0x0, 600 }, + { 0x0, 0x40000, 0x0, 600 }, + { 0x0, 0x20000000, 0x0, 600 }, + { 0x100, 0x0, 0x0, 600 }, + { 0x200000, 0x0, 0x0, 600 }, + { 0x400, 0x0, 0x0, 600 }, + { 0x0, 0x80000000, 0x0, 600 }, + { 0x0, 0x100000, 0x0, 600 }, + { 0x0, 0x200, 0x0, 600 }, + { 0x0, 0x0, 0x40000000, 600 }, + { 0x0, 0x0, 0x80000, 600 }, + { 0x0, 0x0, 0x100, 600 }, + { 0x0, 0x0, 0x200000, 600 }, + { 0x0, 0x4, 0x0, 600 }, + { 0x0, 0x8000, 0x0, 600 }, + { 0x0, 0x4000000, 0x0, 600 }, + { 0x20, 0x0, 0x0, 600 }, + { 0x10000, 0x0, 0x0, 600 }, + { 0x8000000, 0x0, 0x0, 600 }, + { 0x4000, 0x0, 0x0, 600 }, + { 0x2, 0x0, 0x0, 600 }, + { 0x0, 0x100000, 0x0, 600 }, + { 0x0, 0x80, 0x0, 600 }, + { 0x0, 0x0, 0x4000000, 600 }, + { 0x0, 0x0, 0x2000, 600 }, + { 0x0, 0x0, 0x1, 600 } +}; +constexpr uint32_t LEDMATRIX_ANIMATION_HEARTBEAT_LINE[][4] = { + { 0x0, 0xe000, 0x0, 66 }, + { 0x0, 0x6001, 0x100080, 66 }, + { 0x0, 0x2201, 0x40140080, 66 }, + { 0x1001, 0x200201, 0x40140080, 66 }, + { 0x801401, 0x40200200, 0x40140080, 66 }, + { 0x801401, 0x40240230, 0x40040080, 66 }, + { 0x801401, 0x40240230, 0x40040000, 66 }, + { 0x801401, 0x40240230, 0x40000000, 66 }, + { 0x801401, 0x40240230, 0x0, 66 }, + { 0x801401, 0x40240030, 0x0, 66 }, + { 0x801401, 0x40040030, 0x0, 66 }, + { 0x801400, 0x40040030, 0x0, 66 }, + { 0x800400, 0x40040030, 0x0, 66 }, + { 0x400, 0x40040030, 0x0, 66 }, + { 0x0, 0x40040030, 0x0, 66 }, + { 0x0, 0x40030, 0x0, 66 }, + { 0x0, 0x30, 0x0, 66 }, + { 0x0, 0x10, 0x0, 66 }, + { 0x0, 0x0, 0x0, 66 } +}; +constexpr uint32_t LEDMATRIX_ANIMATION_HEARTBEAT[][4] = { + { 0xffffffff, 0xffffffff, 0xffffffff, 66 }, + { 0x7fffffff, 0xffffffff, 0xfffff7ff, 66 }, + { 0x3fe7ffff, 0xffffffff, 0xff7ff3fe, 66 }, + { 0x1fc3fe7f, 0xfffffff7, 0xff3fe1fc, 66 }, + { 0xf81fc3f, 0xe7ff7ff3, 0xfe1fc0f8, 66 }, + { 0x500f81f, 0xc3fe3fe1, 0xfc0f8070, 66 }, + { 0x500f, 0x81fc1fc0, 0xf8070020, 66 }, + { 0x5, 0xf80f80, 0x70020000, 66 }, + { 0x5, 0xa80880, 0x50020000, 600 }, + { 0xd812, 0x41040880, 0x50020000, 200 }, + { 0x5, 0xa80880, 0x50020000, 600 } +}; +constexpr uint32_t LEDMATRIX_ANIMATION_INFINITY_LOOP_LOADER[][4] = { + { 0x82, 0x8408807, 0x0, 100 }, + { 0x40080, 0x8408807, 0x0, 100 }, + { 0x60080, 0x8008807, 0x0, 100 }, + { 0x70080, 0x8008007, 0x0, 100 }, + { 0x70088, 0x8008006, 0x0, 100 }, + { 0x70088, 0x8408004, 0x0, 100 }, + { 0x70088, 0x8408200, 0x0, 100 }, + { 0x70088, 0x8400200, 0x10000000, 100 }, + { 0x70088, 0x400200, 0x18000000, 100 }, + { 0x70008, 0x400200, 0x1c000000, 100 }, + { 0x30008, 0x400220, 0x1c000000, 100 }, + { 0x10008, 0x420220, 0x1c000000, 100 }, + { 0x8, 0x20420220, 0x1c000000, 100 }, + { 0x400, 0x20420220, 0x1c000000, 100 }, + { 0xc00, 0x20020220, 0x1c000000, 100 }, + { 0x1c00, 0x20020020, 0x1c000000, 100 }, + { 0x1c02, 0x20020020, 0xc000000, 100 }, + { 0x1c02, 0x20420020, 0x4000000, 100 }, + { 0x1c02, 0x20420820, 0x0, 100 }, + { 0x1c02, 0x20420801, 0x0, 100 }, + { 0x1c02, 0x20400803, 0x0, 100 }, + { 0x1c02, 0x400807, 0x0, 100 }, + { 0x1802, 0x408807, 0x0, 100 }, + { 0x1002, 0x8408807, 0x0, 100 } +}; +constexpr uint32_t LEDMATRIX_ANIMATION_LOAD_CLOCK[][4] = { + { 0x4000004, 0x2480000, 0x40000, 100 }, + { 0x4000002, 0x2480000, 0x40000, 100 }, + { 0x4000000, 0x2680000, 0x40000, 100 }, + { 0x4000000, 0x2480200, 0x40000, 100 }, + { 0x4000000, 0x2480400, 0x40000, 100 }, + { 0x4000000, 0x2480800, 0x40000, 100 }, + { 0x4000000, 0x2c80000, 0x40000, 100 }, + { 0x4000008, 0x2480000, 0x40000, 100 } +}; +constexpr uint32_t LEDMATRIX_ANIMATION_LOAD[][4] = { + { 0x6011000, 0x2080001, 0x10040000, 100 }, + { 0x4011000, 0x82080001, 0x10040000, 200 }, + { 0x4011000, 0x2080081, 0x10040000, 200 }, + { 0x4011000, 0x2080001, 0x10060000, 200 }, + { 0x4011000, 0x2080001, 0x100c0000, 200 }, + { 0x4011000, 0x2082001, 0x10040000, 200 }, + { 0x4011020, 0x2080001, 0x10040000, 200 }, + { 0xc011000, 0x2080001, 0x10040000, 200 } +}; +constexpr uint32_t LEDMATRIX_ANIMATION_LOCK[][4] = { + { 0xc012012, 0x3f02102, 0x102103f0, 500 }, + { 0x1802402, 0x43f02102, 0x102103f0, 500 } +}; +constexpr uint32_t LEDMATRIX_ANIMATION_NOTIFICATION[][4] = { + { 0x400e011, 0x1102084, 0x47fc040, 500 }, + { 0x420e411, 0x1132084, 0x47fc040, 500 }, + { 0x400e011, 0x1102084, 0x47fc040, 500 }, + { 0x420e411, 0x1132084, 0x47fc040, 500 } +}; +constexpr uint32_t LEDMATRIX_ANIMATION_OPENSOURCE[][4] = { + { 0x0, 0x0, 0x0, 66 }, + { 0x0, 0x10010010, 0x0, 66 }, + { 0x100, 0x20020020, 0x1000000, 66 }, + { 0x300, 0x40040040, 0x3000000, 66 }, + { 0x600, 0x90090090, 0x6000000, 66 }, + { 0xc01, 0x20120120, 0xc000000, 66 }, + { 0x1902, 0x50250250, 0x19000000, 66 }, + { 0x3304, 0xa04b04a0, 0x32000000, 66 }, + { 0x6709, 0x40970940, 0x64000000, 66 }, + { 0xce12, 0x912e1280, 0xc8000000, 66 }, + { 0x19c25, 0x225c2501, 0x90000000, 66 }, + { 0x3394a, 0x54b94a13, 0x21000000, 66 }, + { 0x67394, 0xa9739426, 0x43000000, 66 }, + { 0xce729, 0x42e7284c, 0x87000000, 66 }, + { 0x9cf52, 0x85ce5089, 0xf000000, 66 }, + { 0x39ea5, 0xb9ca102, 0x1e000000, 66 }, + { 0x73d4a, 0x17394214, 0x3d000000, 66 }, + { 0xe7a94, 0x3e728428, 0x7a000000, 66 }, + { 0xcf428, 0x6ce50840, 0xf4000000, 66 }, + { 0x9e950, 0xd9cb1091, 0xe9000000, 66 }, + { 0x3d2a1, 0xa3962123, 0xd2000000, 66 }, + { 0x7a443, 0x472c4247, 0xa4000000, 66 }, + { 0xf4886, 0x8e58848f, 0x48000000, 66 }, + { 0xe900d, 0xcb0090e, 0x90000000, 66 }, + { 0xd201a, 0x960120d, 0x20000000, 66 }, + { 0xa4034, 0x12c0240a, 0x41000000, 66 }, + { 0x48168, 0x25814804, 0x83000000, 66 }, + { 0x903d0, 0x4b039009, 0x7000000, 66 }, + { 0x207a0, 0x86062012, 0xe000000, 66 }, + { 0x40e41, 0xc0c4024, 0x1c000000, 66 }, + { 0x81c82, 0x18198058, 0x38000000, 66 }, + { 0x3904, 0x203200a0, 0x71000000, 66 }, + { 0x7308, 0x40640140, 0xe3000000, 66 }, + { 0xe610, 0x90c90291, 0xc6000000, 66 }, + { 0x1cc21, 0x21920523, 0x8c000000, 66 }, + { 0x39942, 0x53250a57, 0x18000000, 66 }, + { 0x73284, 0xa64a14ae, 0x31000000, 66 }, + { 0xe6409, 0x4c94294c, 0x63000000, 66 }, + { 0xcc912, 0x99295298, 0xc6000000, 66 }, + { 0x99225, 0x2252a521, 0x8c000000, 66 }, + { 0x3254a, 0x54a54a53, 0x19000000, 66 }, + { 0x64b94, 0xa94b94a6, 0x32000000, 66 }, + { 0xc9729, 0x4297294c, 0x64000000, 66 }, + { 0x92e52, 0x952e5298, 0xc9000000, 66 }, + { 0x25ca5, 0x2a5ca521, 0x92000000, 66 }, + { 0x4b84a, 0x54b94a53, 0x24000000, 66 }, + { 0x97194, 0xa97294a6, 0x49000000, 66 }, + { 0x2e329, 0x42e4294c, 0x93000000, 66 }, + { 0x5c752, 0x85c85289, 0x27000000, 66 }, + { 0xb8ea5, 0xb90a502, 0x4e000000, 66 }, + { 0x71d4a, 0x17214a14, 0x9d000000, 66 }, + { 0xe3b94, 0x2e439429, 0x3b000000, 66 }, + { 0xc7728, 0x4c872842, 0x77000000, 66 }, + { 0x8ef50, 0x890e5084, 0xef000000, 66 }, + { 0x1dea1, 0x21ca109, 0xde000000, 66 }, + { 0x3bc42, 0x4384203, 0xbc000000, 66 }, + { 0x77884, 0x8708407, 0x78000000, 66 }, + { 0xef008, 0xe0080e, 0xf0000000, 66 }, + { 0xde010, 0x1c0100d, 0xe0000000, 66 }, + { 0xbc020, 0x380200b, 0xc0000000, 66 }, + { 0x78140, 0x7004007, 0x81000000, 66 }, + { 0xf0380, 0x1e01801f, 0x3000000, 66 }, + { 0xe0700, 0x2c02002e, 0x7000000, 66 }, + { 0xc0e00, 0x4804004c, 0xe000000, 66 }, + { 0x81c00, 0x90080088, 0x1d000000, 66 }, + { 0x3901, 0x20110100, 0x3b000000, 66 }, + { 0x7302, 0x40230200, 0x77000000, 66 }, + { 0xe704, 0x80460410, 0xee000000, 66 }, + { 0x1ce09, 0x8c0821, 0xdc000000, 66 }, + { 0x39c12, 0x1181043, 0xb8000000, 66 }, + { 0x73824, 0x2302087, 0x70000000, 66 }, + { 0xe7048, 0x460410e, 0xe0000000, 66 }, + { 0xce090, 0x8c0820d, 0xc0000000, 66 }, + { 0x9c020, 0x180040b, 0x80000000, 66 }, + { 0x38040, 0x13010807, 0x0, 66 }, + { 0x70180, 0x2602101e, 0x0, 66 }, + { 0xe0200, 0x5c04202c, 0x1000000, 66 }, + { 0xc0500, 0xa8084058, 0x2000000, 66 }, + { 0x80a01, 0x501180a0, 0x4000000, 66 }, + { 0x1402, 0xa0220140, 0x8000000, 66 }, + { 0x2805, 0x40440280, 0x10000000, 66 }, + { 0x500a, 0x80880500, 0x20000000, 66 }, + { 0xa015, 0x1100a00, 0x40000000, 66 }, + { 0x1402a, 0x2201400, 0x80000000, 66 }, + { 0x28054, 0x4402801, 0x0, 66 }, + { 0x500a8, 0x8805002, 0x0, 66 }, + { 0xa0050, 0x100a004, 0x0, 66 }, + { 0x400a0, 0x2004008, 0x0, 66 }, + { 0x80040, 0x4008000, 0x0, 66 }, + { 0x80, 0x8000000, 0x0, 66 }, + { 0x0, 0x0, 0x0, 66 } +}; +constexpr uint32_t LEDMATRIX_ANIMATION_SPINNING_COIN[][4] = { + { 0xe011, 0x2082082, 0x81100e0, 100 }, + { 0xe00a, 0x1101101, 0x100a00e0, 100 }, + { 0x4004, 0xa00a00, 0xa0040040, 100 }, + { 0x4004, 0x400400, 0x40040040, 100 }, + { 0x4004, 0xa00a00, 0xa0040040, 100 }, + { 0xe00a, 0x1101101, 0x100a00e0, 100 }, + { 0xe011, 0x2082082, 0x81100e0, 100 }, + { 0xe00a, 0x1101101, 0x100a00e0, 100 }, + { 0x4004, 0xa00a00, 0xa0040040, 100 }, + { 0x4004, 0x400400, 0x40040040, 100 }, + { 0x4004, 0xa00a00, 0xa0040040, 100 }, + { 0xe00a, 0x1101101, 0x100a00e0, 100 } +}; +constexpr uint32_t LEDMATRIX_ANIMATION_TETRIS[][4] = { + { 0xe0000000, 0x0, 0x0, 66 }, + { 0x400e0000, 0x0, 0x0, 66 }, + { 0x400e0, 0x0, 0x0, 66 }, + { 0x40, 0xe000000, 0x0, 66 }, + { 0x3000000, 0x400e000, 0x0, 66 }, + { 0x3003000, 0x400e, 0x0, 66 }, + { 0x3003, 0x4, 0xe00000, 66 }, + { 0x3, 0x300000, 0x400e00, 66 }, + { 0x0, 0x300300, 0x400e00, 66 }, + { 0x1c000000, 0x300, 0x30400e00, 66 }, + { 0x401c000, 0x0, 0x30430e00, 66 }, + { 0x401c, 0x0, 0x430e30, 66 }, + { 0x4, 0x1c00000, 0x430e30, 66 }, + { 0x0, 0x401c00, 0x430e30, 66 }, + { 0x800000, 0x401, 0xc0430e30, 66 }, + { 0x800800, 0x0, 0x405f0e30, 66 }, + { 0x800800, 0x80000000, 0x470ff0, 66 }, + { 0x800800, 0x80080000, 0x470ff0, 66 }, + { 0x800, 0x80080080, 0x470ff0, 66 }, + { 0x38000000, 0x80080080, 0x8470ff0, 66 }, + { 0x10038000, 0x80080, 0x8478ff0, 66 }, + { 0x10038, 0x80, 0x8478ff8, 66 }, + { 0x700010, 0x3800080, 0x8478ff8, 66 }, + { 0x400700, 0x1003880, 0x8478ff8, 66 }, + { 0x400, 0x70001083, 0x88478ff8, 66 }, + { 0xf000000, 0x40070081, 0x87f8ff8, 66 }, + { 0xf000, 0x400f1, 0x87f8ff8, 66 }, + { 0x8000000f, 0xc1, 0xf7f8ff8, 66 }, + { 0xc0080000, 0xf00081, 0xc7ffff8, 66 }, + { 0x400c0080, 0xf81, 0x87fcfff, 66 }, + { 0x3400c0, 0x8000081, 0xf87fcfff, 66 }, + { 0x20200340, 0xc008081, 0xf87fcfff, 66 }, + { 0x38220200, 0x3400c089, 0xf87fcfff, 66 }, + { 0x38220, 0x2003408d, 0xf8ffcfff, 66 }, + { 0x86100038, 0x220240bd, 0xf8ffcfff, 66 }, + { 0xec186100, 0x38260ad, 0xfbffcfff, 66 }, + { 0x3ec186, 0x100078af, 0xfaffffff, 66 }, + { 0x114003ec, 0x186178af, 0xfaffffff, 66 }, + { 0x3b411400, 0x3ec1febf, 0xfaffffff, 66 }, + { 0x143b411, 0x4ec3febf, 0xfbffffff, 66 }, + { 0xc040143b, 0x4fd7febf, 0xfbffffff, 66 }, + { 0xc60c0439, 0x4ff7ffff, 0xfbffffff, 66 }, + { 0x33c60f9, 0x4ff7ffff, 0xffffffff, 66 }, + { 0x3cbc33ff, 0x4ff7ffff, 0xffffffff, 66 }, + { 0x8ffbff, 0x7ff7ffff, 0xffffffff, 66 }, + { 0xf0cffbff, 0xfff7ffff, 0xffffffff, 66 }, + { 0xfe1fffff, 0xffffffff, 0xffffffff, 66 }, + { 0xffffffff, 0xffffffff, 0xffffffff, 66 } +}; +constexpr uint32_t LEDMATRIX_ANIMATION_WIFI_SEARCH[][4] = { + { 0x0, 0x0, 0x40, 600 }, + { 0x0, 0x0, 0xe0110040, 600 }, + { 0x0, 0x1f02084, 0xe4110040, 500 }, + { 0x3f840, 0x49f22084, 0xe4110040, 500 } +};