I was driving past one of those led advertising signs sitting on the side of the road the other day and thought to myself ‘I can do that’
So I’ve hooked up 6 of the freetronics DMD modules (in a 2x3 layout) and got down to coding up a way to do it.
In the end I got it working by adding support for multiple buffers into my DMD library - github.com/cjd/DMD
Since I have the ability to have multiple buffers I can now transition between buffers presentation-style.
There are 8 transitions - wipe left/right/up/down, box in/out and cross in/out
The following video demonstrates some of the transitions
It is my sons first birthday in a few days so I thought it nice to create a moving sign for his party :)
[youtube_sc url=“s4Qjski-WMY”]
For the hardware I mounted the displays on a wooden frame (hold on by hot-glue) and then routed power down each side and signal was daisy-chained from bottom-right (bottom-left in photo) to each display.
Source code below:
#
#
#
#
D
l
l
l
i
i
i
i
{
}
{
}
{
}
{
}
{
}
{
}
{
}
{
}
{
}
{
}
{
}
i
i
i
i
/
M
o
o
o
n
n
n
n
o
o
o
o
o
o
o
o
o
o
o
I
n
n
n
n
F
D
n
n
n
t
t
t
t
I
c
i
s
C
i
l
A
i
i
i
i
i
i
i
i
i
n
c
c
c
c
i
g
g
g
n
a
d
d
e
a
d
r
T
T
d
d
d
o
r
d
l
d
s
d
d
w
d
d
d
d
c
d
w
d
d
d
d
d
d
d
t
d
d
s
t
d
d
d
d
d
d
d
d
t
d
d
d
d
d
d
t
d
d
d
i
t
d
w
d
d
d
d
h
e
m
d
d
i
d
f
}
f
}
d
d
d
d
d
h
e
m
d
d
d
d
f
}
f
}
f
}
d
d
d
h
e
m
d
d
d
d
d
d
d
d
d
d
d
d
d
d
c
l
l
l
l
r
d
c
c
t
i
t
l
m
t
l
a
/
i
i
/
m
m
m
o
d
o
m
m
m
e
i
e
m
m
m
h
m
h
m
m
m
m
m
m
m
r
e
m
m
r
e
m
m
m
m
m
m
m
r
e
m
m
m
m
m
r
e
m
n
r
m
h
m
m
m
e
y
o
m
m
n
m
o
o
m
/
m
m
m
e
y
o
m
m
m
m
o
o
o
m
m
e
y
o
m
m
m
m
m
m
m
m
m
m
l
u
u
u
u
e
m
m
t
o
e
e
r
=
e
l
S
d
u
l
s
n
i
m
m
c
d
d
d
p
u
l
o
d
i
d
l
n
l
d
d
d
a
d
i
d
d
d
d
d
d
d
a
l
d
i
a
l
d
d
d
d
d
d
d
a
l
d
d
d
d
d
a
l
d
t
t
a
d
i
w
d
d
d
a
e
u
d
d
t
d
r
r
d
l
h
d
d
d
a
e
u
d
d
d
d
r
r
r
d
s
d
a
e
u
d
d
h
d
e
d
d
m
d
m
d
d
d
d
u
d
d
d
d
d
D
i
l
n
n
a
0
r
e
c
.
p
e
e
d
n
e
e
l
.
.
.
i
o
k
.
l
.
a
k
a
.
.
.
r
.
l
.
.
.
.
.
.
.
n
a
.
l
n
a
.
.
.
.
.
.
.
n
a
.
.
.
.
.
n
a
.
r
n
.
l
i
.
.
.
d
s
t
.
.
.
.
o
e
.
.
.
d
s
t
.
e
.
.
.
.
m
.
d
s
t
.
.
e
.
y
.
.
o
.
o
.
.
.
.
d
e
e
e
e
u
(
e
m
d
t
t
n
;
r
d
a
s
d
t
o
i
r
r
e
c
s
s
n
o
a
s
e
s
y
(
y
c
s
s
d
e
s
c
d
d
d
c
s
s
y
s
e
s
y
s
c
d
d
d
c
s
s
y
s
c
d
d
d
s
y
c
a
i
s
c
e
n
s
c
s
(
(
h
d
c
w
s
(
d
i
}
}
i
i
}
}
}
d
d
(
d
i
}
}
i
i
}
}
}
d
d
s
o
a
s
c
s
(
(
h
c
y
d
d
s
(
d
d
d
d
d
(
d
d
d
d
d
(
d
d
d
d
d
s
i
c
(
(
h
d
d
a
d
e
d
d
u
d
u
d
d
d
d
e
p
2
l
e
t
r
r
s
u
n
c
u
m
t
1
1
a
l
e
e
o
p
r
e
(
e
(
)
(
o
e
e
s
r
e
l
r
r
r
o
e
i
(
e
(
i
(
e
l
r
r
r
o
e
i
(
e
l
r
r
r
i
(
o
n
=
=
o
k
e
l
e
)
)
_
r
o
i
e
i
m
f
n
f
m
e
i
m
f
n
f
m
e
e
k
d
e
l
e
)
)
_
o
e
r
r
e
i
m
m
m
m
e
i
m
m
m
m
e
i
m
m
m
m
e
e
l
l
)
)
_
r
r
d
r
s
r
r
t
r
t
r
r
r
r
s
<
<
<
"
,
a
r
i
e
e
=
p
a
D
a
b
p
S
i
.
.
r
e
l
t
(
o
t
)
t
1
;
3
p
t
t
t
a
(
t
e
a
a
a
p
t
t
1
t
)
t
5
t
e
a
a
a
p
t
t
1
t
e
a
a
a
t
1
p
s
0
r
p
(
(
t
e
t
;
;
s
a
p
n
t
n
d
e
t
e
e
d
l
n
d
e
t
e
e
d
l
t
a
t
e
t
;
;
f
p
l
a
a
t
n
d
d
d
d
l
n
d
d
d
d
l
n
d
d
d
d
l
t
e
e
;
;
s
a
a
(
a
(
a
a
h
a
h
a
a
a
a
S
D
T
A
t
3
y
=
m
X
Y
0
t
t
M
n
y
(
e
a
i
a
/
a
e
u
a
v
u
B
;
B
0
0
y
B
B
r
w
!
B
a
w
w
w
y
B
i
0
B
;
i
0
B
a
w
w
w
y
B
i
0
B
a
w
w
w
i
0
y
i
;
a
y
d
)
B
a
B
m
w
y
k
B
t
.
(
l
(
l
l
.
a
t
.
(
l
(
l
l
.
a
B
r
B
a
B
l
y
i
w
w
B
t
.
.
.
.
a
t
.
.
.
.
a
t
.
.
.
.
a
B
(
a
m
w
w
)
w
)
w
w
_
w
_
w
w
w
w
P
M
i
r
h
,
=
-
e
=
=
;
D
D
v
e
l
n
t
i
r
c
p
r
o
n
u
u
0
0
B
u
u
i
M
d
u
r
S
S
S
B
u
o
0
u
o
0
u
r
S
S
S
B
u
o
0
u
r
S
S
S
o
0
B
t
n
B
m
u
r
u
i
F
B
s
u
c
i
d
s
d
w
i
d
s
d
s
d
c
y
c
i
d
s
d
w
i
d
s
d
s
d
c
y
u
o
u
r
u
a
B
d
L
L
u
c
d
d
c
y
c
d
d
c
y
c
d
d
c
y
u
)
r
i
F
F
C
C
C
f
L
s
L
L
L
L
I
D
m
i
e
1
3
1
r
3
2
h
t
(
i
t
o
d
i
i
t
n
S
t
B
c
i
d
f
f
0
)
u
f
f
n
a
m
f
S
t
t
t
u
f
n
0
f
n
)
f
S
t
t
t
u
f
n
0
f
S
t
t
t
n
0
u
i
d
u
d
f
S
f
l
i
u
p
f
i
o
<
m
e
m
i
=
m
e
m
e
m
o
(
i
o
<
m
e
m
i
=
m
e
m
e
m
o
(
f
u
f
S
f
t
u
s
i
i
f
i
o
r
r
o
(
i
o
r
r
o
(
i
o
r
r
o
(
f
S
l
i
i
i
i
i
l
i
m
i
i
i
i
.
.
e
a
)
0
;
=
2
4
a
h
)
s
h
i
(
z
t
a
i
c
F
u
h
d
(
f
f
)
;
f
f
f
g
r
d
f
c
r
r
r
f
f
(
)
f
(
;
f
c
r
r
r
f
f
(
)
f
c
r
r
r
(
)
f
o
o
f
.
f
c
f
e
l
f
e
f
=
p
=
d
d
d
=
d
d
d
p
5
=
p
=
d
d
d
=
d
d
d
p
5
f
n
f
c
f
(
f
n
n
f
=
p
a
a
p
1
=
p
a
a
p
1
=
p
a
a
p
1
f
c
e
l
l
r
r
r
a
n
i
n
n
n
n
h
h
r
l
D
;
;
-
;
;
n
e
p
e
d
a
e
i
c
t
r
o
f
i
)
)
e
e
;
f
e
e
a
q
.
e
r
i
i
i
f
e
0
;
e
1
e
r
i
i
i
f
e
0
;
e
r
i
i
i
1
;
f
n
m
f
t
e
r
e
(
l
f
e
e
0
y
4
.
i
.
t
0
.
i
.
{
.
y
0
8
y
4
.
i
.
t
0
.
i
.
{
.
y
0
e
d
e
r
e
)
f
e
e
e
0
y
w
w
y
0
2
y
w
w
y
0
-
y
w
w
y
0
e
r
(
l
l
c
c
c
t
e
l
e
e
e
e
>
>
O
_
M
1
d
l
)
n
a
h
e
n
f
t
;
r
r
e
r
r
[
u
s
r
e
n
n
n
e
r
,
r
,
r
e
n
n
n
e
r
,
r
e
n
n
n
,
e
(
(
e
r
r
e
r
)
e
e
d
r
;
B
)
d
f
d
h
d
f
d
d
B
)
;
B
)
d
f
d
h
d
f
d
d
B
)
r
(
r
e
r
;
e
(
(
r
;
B
F
F
B
0
;
B
F
F
B
0
2
B
F
F
B
0
r
e
)
e
e
l
l
l
(
(
e
(
(
(
(
n
b
D
;
l
p
a
A
a
T
l
I
t
e
t
e
e
E
D
r
E
D
]
e
t
E
e
g
g
g
r
D
1
E
0
E
e
g
g
g
r
D
1
E
e
g
g
g
0
r
b
8
r
a
E
e
D
;
d
r
=
E
i
u
r
(
r
=
r
(
r
r
u
;
i
u
r
(
r
=
r
(
r
r
u
;
E
)
E
e
D
r
c
c
E
i
u
i
i
u
)
i
u
i
i
u
)
;
u
i
i
u
)
E
e
;
d
d
e
e
e
)
c
(
c
c
c
c
e
l
e
e
y
r
l
i
i
n
h
n
(
r
c
d
i
(
d
i
=
e
e
d
n
(
(
(
(
i
)
d
)
d
n
(
(
(
(
i
)
d
n
(
(
(
)
(
y
)
(
n
d
n
i
B
(
1
d
<
f
{
a
i
a
0
a
i
a
a
f
>
f
{
a
i
a
0
a
i
a
a
f
d
d
n
i
(
e
e
d
<
f
l
l
f
;
>
f
l
l
f
;
i
f
l
l
f
;
d
n
B
B
(
(
(
e
)
e
e
e
e
.
a
l
r
r
B
d
o
m
z
t
e
(
A
(
t
i
s
2
i
s
"
(
p
i
(
8
0
6
0
s
;
i
;
i
(
8
2
1
0
s
;
i
(
1
0
1
;
1
t
;
f
s
i
(
s
o
0
0
i
=
f
w
=
w
;
w
<
w
w
f
=
f
w
=
w
;
w
<
w
w
f
i
i
(
s
0
n
n
i
=
f
l
l
f
=
f
l
l
f
<
f
l
l
f
i
(
o
o
c
c
c
n
n
n
n
n
h
c
i
i
y
u
g
e
e
e
r
3
u
t
p
,
t
p
H
s
M
t
0
,
,
,
,
p
t
t
0
,
6
6
,
p
t
0
6
,
6
,
e
r
i
t
0
p
x
,
0
t
8
e
F
=
F
i
L
=
L
L
e
0
e
F
=
F
i
L
=
L
L
e
t
t
0
p
,
t
t
t
2
e
e
e
e
-
e
e
e
e
=
e
e
e
e
t
0
x
x
e
e
e
t
t
t
t
t
>
k
b
f
o
S
i
R
r
(
r
D
0
i
)
r
(
l
0
(
l
a
t
a
(
)
0
1
3
2
l
(
(
)
0
,
,
2
l
(
)
,
1
,
0
o
t
(
)
l
(
2
;
(
;
r
i
5
i
=
i
2
i
i
r
;
r
i
5
i
=
i
2
i
i
r
(
(
)
l
2
r
r
(
;
r
d
d
r
2
r
d
d
r
0
r
d
d
r
(
)
(
(
n
n
n
r
r
r
r
r
_
r
o
d
P
n
e
O
r
M
a
;
e
0
a
)
0
a
p
r
r
1
;
,
6
2
)
a
0
1
;
,
1
3
)
a
0
;
0
6
3
)
f
m
i
0
;
a
c
)
1
i
(
l
)
l
=
n
n
n
(
i
(
l
)
l
=
n
n
n
(
2
0
;
a
)
e
e
1
i
(
B
B
(
;
(
B
B
(
;
(
B
B
(
2
;
c
c
t
t
t
e
e
e
e
e
1
a
r
I
o
a
n
5
u
D
)
l
)
y
;
)
y
p
i
q
)
"
,
,
;
y
)
)
"
6
2
;
y
)
,
,
2
;
r
,
o
)
y
e
;
)
+
0
l
l
8
e
e
e
1
-
0
l
l
8
e
e
e
1
)
)
y
;
X
X
)
+
0
o
o
1
i
0
o
o
1
i
0
o
o
1
)
e
e
r
r
r
X
X
X
X
X
6
r
s
(
d
e
0
p
;
_
m
;
(
;
(
y
n
u
;
H
"
"
(
;
;
L
,
,
(
;
"
"
,
o
2
n
;
(
n
;
+
,
e
{
e
)
(
,
-
,
e
{
e
)
(
,
;
;
(
-
+
;
+
,
x
x
,
-
,
x
x
,
+
,
x
x
,
;
n
n
e
e
e
-
-
-
+
+
.
y
T
e
)
a
(
'
0
t
p
B
a
0
0
g
e
a
B
L
2
u
"
"
2
B
2
"
m
)
(
2
t
)
1
d
d
c
c
c
2
)
1
d
d
c
c
c
2
2
5
5
)
1
(
(
2
-
1
(
(
2
+
1
(
(
2
t
t
X
X
X
1
1
4
4
1
h
i
t
;
r
0
s
0
(
i
l
i
)
)
B
a
e
p
i
u
)
c
i
O
)
o
8
2
,
;
f
)
r
)
B
B
{
e
i
e
e
)
)
B
B
{
e
i
e
e
)
)
,
,
)
c
c
)
)
)
c
c
)
)
)
c
c
)
r
r
,
-
+
2
2
,
,
2
"
a
m
c
)
x
a
n
;
;
i
,
(
p
r
c
;
a
s
n
;
r
0
r
;
e
{
;
o
o
n
>
n
n
;
{
;
o
o
n
>
n
n
;
;
c
c
{
;
e
e
;
;
e
e
;
;
e
e
;
e
e
c
7
7
,
,
c
c
,
s
e
i
h
)
i
)
S
e
c
r
s
-
y
t
a
s
"
e
n
A
1
b
o
X
x
x
t
=
t
t
x
x
t
=
t
t
e
e
n
n
{
n
n
{
n
n
X
X
e
,
,
c
c
e
e
c
r
n
i
;
n
;
c
l
k
l
t
t
1
"
h
s
"
,
!
"
p
1
y
m
-
(
(
r
6
r
r
(
(
r
6
r
r
n
n
t
t
t
t
t
t
-
+
n
c
c
e
e
n
n
e
d
1
t
t
a
s
_
o
h
r
,
,
d
!
,
2
"
,
r
"
t
,
8
c
c
e
)
e
e
c
c
e
)
e
e
t
t
r
r
r
r
r
r
8
6
t
e
e
n
n
t
t
n
m
T
e
e
n
/
1
o
d
l
0
5
a
"
5
,
,
4
i
,
e
t
,
e
e
X
X
X
e
e
X
X
X
r
r
e
e
e
e
e
e
,
,
r
n
n
t
t
r
r
t
d
(
i
c
r
D
h
t
6
p
a
e
)
,
y
,
,
1
4
,
l
4
o
c
n
n
+
{
+
+
n
n
+
{
+
+
e
e
X
X
X
X
X
X
c
c
e
t
t
r
r
e
e
r
T
m
t
r
M
e
r
)
y
n
)
1
"
6
1
,
,
1
"
,
t
,
e
t
t
7
7
7
t
t
7
7
7
Y
Y
-
+
-
+
-
+
e
e
Y
r
r
e
e
Y
Y
e
S
i
e
u
u
D
l
u
;
(
{
,
,
,
,
0
1
,
,
1
o
2
n
r
r
-
-
-
r
r
-
-
-
-
-
8
6
8
6
8
6
n
n
,
e
e
Y
Y
+
+
Y
P
m
r
r
p
d
e
L
s
d
0
8
1
0
)
,
0
8
,
)
,
t
e
e
1
3
4
e
e
1
3
4
1
1
+
+
+
+
+
+
t
t
2
Y
Y
+
+
1
1
+
I
e
1
e
t
)
u
t
e
)
,
,
)
;
0
)
,
0
t
r
X
X
,
,
,
X
X
,
,
,
0
0
i
i
i
i
i
i
r
r
0
-
-
8
6
1
1
6
.
r
.
/
;
i
i
c
r
l
;
1
0
;
)
;
1
)
r
e
+
+
c
c
c
+
+
c
c
c
,
,
,
,
,
,
,
,
e
e
,
7
7
,
,
,
,
,
h
O
i
b
C
n
s
a
i
a
,
)
;
,
;
a
Y
6
6
e
e
e
6
6
e
e
e
c
c
c
c
c
c
c
c
Y
Y
1
,
,
c
c
c
c
c
n
n
e
P
s
n
y
0
;
0
n
-
,
,
n
n
n
,
,
n
n
n
e
e
e
e
e
e
e
e
-
-
)
5
5
e
e
e
e
e
m
e
i
f
U
R
n
"
g
(
)
)
s
7
c
c
t
t
t
c
c
t
t
t
n
n
n
n
n
n
n
n
7
7
;
,
,
n
n
n
n
n
u
)
t
o
A
o
;
a
3
;
;
,
,
e
e
r
r
r
e
e
r
r
r
t
t
t
t
t
t
t
t
,
,
1
1
t
t
t
t
t
s
i
r
u
M
r
)
0
i
c
n
n
e
e
e
n
n
e
e
e
r
r
r
r
r
r
r
r
c
c
)
)
r
r
r
r
r
t
d
a
e
s
m
,
)
)
e
t
t
Y
Y
Y
t
t
Y
Y
Y
e
e
e
e
e
e
e
e
e
e
;
;
e
e
e
e
e
r
l
a
/
a
6
;
)
n
r
r
-
-
-
r
r
-
-
-
X
X
Y
Y
Y
Y
Y
Y
n
n
X
X
X
X
X
b
i
i
t
g
a
l
4
}
t
e
e
1
1
1
e
e
1
1
1
-
+
-
-
-
-
-
-
t
t
+
-
,
,
+
e
v
z
h
e
t
,
{
r
Y
Y
1
1
1
Y
Y
1
1
1
1
1
7
7
7
7
7
7
r
r
1
4
c
c
4
e
e
e
t
(
1
i
e
-
-
+
+
+
-
-
+
+
+
0
0
,
,
,
,
,
,
e
e
2
,
e
e
,
i
n
(
u
a
a
6
=
X
7
6
i
i
i
7
6
i
i
i
,
,
c
c
c
c
c
c
X
X
,
c
n
n
c
n
)
m
s
c
l
,
i
-
,
,
,
,
,
,
,
,
,
,
c
c
e
e
e
e
e
e
-
+
c
e
t
t
e
c
D
;
a
e
h
l
0
+
6
c
c
c
c
c
c
c
c
c
c
e
e
n
n
n
n
n
n
6
8
e
n
r
r
n
l
M
i
d
x
1
,
e
e
e
e
e
e
e
e
e
e
n
n
t
t
t
t
t
t
,
,
n
t
e
e
t
u
D
n
/
t
p
F
;
c
n
n
n
n
n
n
n
n
n
n
t
t
r
r
r
r
r
r
c
c
t
r
Y
Y
r
d
t
p
h
i
F
}
e
t
t
t
t
t
t
t
t
t
t
r
r
e
e
e
e
e
e
e
e
r
e
+
+
e
e
r
l
o
e
e
x
,
n
r
r
r
r
r
r
r
r
r
r
e
e
X
X
X
X
X
X
n
n
e
Y
1
1
Y
d
e
o
r
e
0
t
e
e
e
e
e
e
e
e
e
e
Y
Y
-
+
-
+
-
+
t
t
Y
+
1
1
+
f
o
s
i
T
l
)
r
X
X
X
X
X
X
X
X
X
X
-
-
6
8
6
8
6
8
r
r
+
1
,
,
1
a
r
p
c
o
i
s
;
e
+
+
+
+
+
+
+
+
+
+
1
1
+
+
+
+
+
+
e
e
8
1
1
1
1
s
e
a
d
m
Y
8
8
7
7
7
8
8
7
7
7
0
0
i
i
i
i
i
i
Y
Y
,
,
)
)
,
s
b
n
e
o
-
,
,
+
+
+
,
,
+
+
+
,
,
,
,
,
,
,
,
-
-
1
1
;
;
1
D
h
e
i
r
f
5
c
c
1
3
4
c
c
1
3
4
1
1
c
c
c
c
c
c
5
5
)
)
)
M
g
a
n
1
f
,
e
e
,
,
,
e
e
,
,
,
)
)
e
e
e
e
e
e
,
,
;
;
;
D
s
i
n
)
1
n
n
c
c
c
n
n
c
c
c
;
;
n
n
n
n
n
n
1
1
c
n
d
m
i
,
)
t
t
e
e
e
t
t
e
e
e
t
t
t
t
t
t
)
)
i
a
s
i
n
;
r
r
n
n
n
r
r
n
n
n
r
r
r
r
r
r
;
;
s
n
r
c
t
f
e
e
t
t
t
e
e
t
t
t
e
e
e
e
e
e
n
e
r
e
a
Y
Y
r
r
r
Y
Y
r
r
r
Y
Y
Y
Y
Y
Y
w
i
f
o
r
l
-
-
e
e
e
-
-
e
e
e
-
-
-
-
-
-
r
n
r
s
r
s
5
5
Y
Y
Y
5
5
Y
Y
Y
5
5
5
5
5
5
i
g
e
e
u
e
,
,
-
-
-
,
,
-
-
-
,
,
,
,
,
,
t
,
s
c
p
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
t
h
o
t
i
)
)
1
1
1
)
)
1
1
1
)
)
)
)
)
)
e
t
n
s
;
;
+
+
+
;
;
+
+
+
;
;
;
;
;
;
n
h
t
d
t
i
i
i
i
i
i
i
h
s
o
n
,
,
,
,
,
,
b
s
e
e
1
1
1
1
1
1
y
t
S
g
)
)
)
)
)
)
g
d
o
c
a
;
;
;
;
;
;
S
e
i
a
t
P
t
s
c
n
i
I
s
p
a
D
v
l
l
M
e
(
a
l
D
t
y
(
h
S
w
a
e
c
h
l
a
i
l
I
n
c
D
D
h
p
E
M
i
D
g
x
c
.
o
e
o
e
l
m
A
s
s
p
n
l
y
t
o
a
t
o
n
i
h
)
n
i
d
s
n
m
g
d
o
.
t
l
s
h
o
c
e
n
a
r
g
n
w
e
D
i
r
i
s
s
e
t
p
)
h
l
a
a
n
y
B
5
y
0
S
0
P
0
I
(
(
)
5
m
s
)
a
n
d
y
o
u
c
a
n
s
e
e
f
l
i
c
k
e
r
.