LED MATRIX
PATTERN GENERATOR
Matrix pattern generator intended for shift registers
Design grid
Click and drag to draw your pattern.
0
8
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
PRESETS
No saved presets yet.
ANIMATION
SCRIPT
BIT ORDER
/* Tri-colour LED Matrix — 14×36 px — Arduino PROGMEM */
#include <avr/pgmspace.h>
#define MATRIX_ROWS 36
#define MATRIX_COLS 14
#define MATRIX_BPR 2
const uint8_t red_pattern[36][2] PROGMEM = {
{ 0x00, 0x00 }, /* row 0 */
{ 0x00, 0x00 }, /* row 1 */
{ 0x00, 0x00 }, /* row 2 */
{ 0x00, 0x00 }, /* row 3 */
{ 0x00, 0x00 }, /* row 4 */
{ 0x00, 0x00 }, /* row 5 */
{ 0x00, 0x00 }, /* row 6 */
{ 0x00, 0x00 }, /* row 7 */
{ 0x00, 0x00 }, /* row 8 */
{ 0x00, 0x00 }, /* row 9 */
{ 0x00, 0x00 }, /* row 10 */
{ 0x00, 0x00 }, /* row 11 */
{ 0x00, 0x00 }, /* row 12 */
{ 0x00, 0x00 }, /* row 13 */
{ 0x00, 0x00 }, /* row 14 */
{ 0x00, 0x00 }, /* row 15 */
{ 0x00, 0x00 }, /* row 16 */
{ 0x00, 0x00 }, /* row 17 */
{ 0x00, 0x00 }, /* row 18 */
{ 0x00, 0x00 }, /* row 19 */
{ 0x00, 0x00 }, /* row 20 */
{ 0x00, 0x00 }, /* row 21 */
{ 0x00, 0x00 }, /* row 22 */
{ 0x00, 0x00 }, /* row 23 */
{ 0x00, 0x00 }, /* row 24 */
{ 0x00, 0x00 }, /* row 25 */
{ 0x00, 0x00 }, /* row 26 */
{ 0x00, 0x00 }, /* row 27 */
{ 0x00, 0x00 }, /* row 28 */
{ 0x00, 0x00 }, /* row 29 */
{ 0x00, 0x00 }, /* row 30 */
{ 0x00, 0x00 }, /* row 31 */
{ 0x00, 0x00 }, /* row 32 */
{ 0x00, 0x00 }, /* row 33 */
{ 0x00, 0x00 }, /* row 34 */
{ 0x00, 0x00 } /* row 35 */
};
const uint8_t green_pattern[36][2] PROGMEM = {
{ 0x00, 0x00 }, /* row 0 */
{ 0x00, 0x00 }, /* row 1 */
{ 0x00, 0x00 }, /* row 2 */
{ 0x00, 0x00 }, /* row 3 */
{ 0x00, 0x00 }, /* row 4 */
{ 0x00, 0x00 }, /* row 5 */
{ 0x00, 0x00 }, /* row 6 */
{ 0x00, 0x00 }, /* row 7 */
{ 0x00, 0x00 }, /* row 8 */
{ 0x00, 0x00 }, /* row 9 */
{ 0x00, 0x00 }, /* row 10 */
{ 0x00, 0x00 }, /* row 11 */
{ 0x00, 0x00 }, /* row 12 */
{ 0x00, 0x00 }, /* row 13 */
{ 0x00, 0x00 }, /* row 14 */
{ 0x00, 0x00 }, /* row 15 */
{ 0x00, 0x00 }, /* row 16 */
{ 0x00, 0x00 }, /* row 17 */
{ 0x00, 0x00 }, /* row 18 */
{ 0x00, 0x00 }, /* row 19 */
{ 0x00, 0x00 }, /* row 20 */
{ 0x00, 0x00 }, /* row 21 */
{ 0x00, 0x00 }, /* row 22 */
{ 0x00, 0x00 }, /* row 23 */
{ 0x00, 0x00 }, /* row 24 */
{ 0x00, 0x00 }, /* row 25 */
{ 0x00, 0x00 }, /* row 26 */
{ 0x00, 0x00 }, /* row 27 */
{ 0x00, 0x00 }, /* row 28 */
{ 0x00, 0x00 }, /* row 29 */
{ 0x00, 0x00 }, /* row 30 */
{ 0x00, 0x00 }, /* row 31 */
{ 0x00, 0x00 }, /* row 32 */
{ 0x00, 0x00 }, /* row 33 */
{ 0x00, 0x00 }, /* row 34 */
{ 0x00, 0x00 } /* row 35 */
};
/* Read helpers: */
/* pgm_read_byte(&red_pattern[row][byteIdx]) */
/* pgm_read_byte(&green_pattern[row][byteIdx]) */