Freetronics DMD - Screen transitions

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 .