Difference between revisions of "Alpha 220 LED Sign"

From NAS-Central Buffalo - The Linkstation Wiki
Jump to: navigation, search
m (Install a Serial Port Interface)
m
Line 126: Line 126:
 
|  HEIGHT=16 ALIGN=LEFT | t
 
|  HEIGHT=16 ALIGN=LEFT | t
 
|  ALIGN=LEFT | compressed text
 
|  ALIGN=LEFT | compressed text
|  ALIGN=LEFT | MODE TAG (see below)
+
|  ALIGN=LEFT | <b>MODE TAG</b> (see below)
 
|-  
 
|-  
 
|  HEIGHT=16 ALIGN=LEFT | \x1C
 
|  HEIGHT=16 ALIGN=LEFT | \x1C
Line 134: Line 134:
 
|  HEIGHT=16 ALIGN=LEFT | 1
 
|  HEIGHT=16 ALIGN=LEFT | 1
 
|  ALIGN=LEFT | red
 
|  ALIGN=LEFT | red
|  ALIGN=LEFT | COLORTAG (see below)
+
|  ALIGN=LEFT | <b>COLORTAG</b> (see below)
 
|-  
 
|-  
 
|  HEIGHT=16 ALIGN=LEFT | Hello World
 
|  HEIGHT=16 ALIGN=LEFT | Hello World
Line 148: Line 148:
  
 
====MODE TAG and COLORTAG====
 
====MODE TAG and COLORTAG====
The key parts of this are the MODE TAG and COLORTAG, there is full documentation available for this<ref>[http://www.ams-i.com/Pages/97088061.htm Alpha Sign Communications Protocol (pn 9708-8061)]
+
The key parts of this are the <b>MODE TAG</b> and <b>COLORTAG>/b>, there is full documentation available for this<ref>[http://www.ams-i.com/Pages/97088061.htm Alpha Sign Communications Protocol (pn 9708-8061)]
 
</ref> but here are the pertinent parts.
 
</ref> but here are the pertinent parts.
  

Revision as of 01:01, 10 August 2007


You can find one of these signs for less than $100.
Alpha220.jpg
220 Full Matrix, (Case 37.7" x 3.8" x 2.9 ") Tricolor[1]

Contents

Install a Serial Port Interface

I this case a KuroBoxPro was used however any Linkstation could be used by accessing the serial port interface.

First you are going to have to install a serial port interface. There are two physical serial ports on the KuroBox. One serial port on the bottom[2] which is the same as the port on the Linkstation Pro and one on the daughterboard accessible from the front. Both are addressed as /dev/ttyS0. Consider soldering in a pinheader rather than the pressure connector used in the method described in the LSPRO method.


The cheapest TTL/RS232 converter found was from futurelec, however the order is shipped from thailand so it takes 2-3 weeks to get it.

http://www.futurlec.com/Mini_RS232_TTL_3V.shtml

ET-MINI RS232 3V.jpg

The sign uses a 6 conductor RJ-12 Jack. A Quick port RJ-12 jack is used to interface the sign to the serial port converter

RJ12jack.jpg

The serial port board/connector are then enclosed in a 2 port Quick port surface mount housing

2PSM.jpg

Interface Sign to Serial Port Interface

A standard 6 wire telephone cable meant for a two line phone is used (a 4 wire one will not work) Plug one end into the sign, and one end into the Quick port RJ-12 Jack. Wire the jack into the serial port board as such[3]

100px-Rj11_connector.jpg
  • Pin 4 of the RJ12 to RS-232 RX.
  • Pin 3 of the RJ12 to RS-232 TX
  • Pin 6 of the RJ12 to RS-232 GND

Setup the serial port

Adjust the serial port settings, below is a script to do this. This information comes from a FAQ on using the Alpha sign with Linux[4].

setledsign

# /usr/local/bin/setledsign
#!/bin/sh

rm /dev/alpha
ln -s /dev/ttyS0 /dev/alpha
chmod a+rw /dev/alpha
stty 9600 -opost -ocrnl -onlcr cs7 parenb -parodd < /dev/alpha

Wake up the sign and display something on it

alphamon.pl

# alphamon.pl
#
#!/usr/bin/perl
#
# Script will display the contents of /tmp/textfile to the ALPHA 220C LED
# Display
#
# Usage
#
# alphamon.pl [MODE TAG] [COLORTAG]


# Get the attention of the sign
print "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";


# Tell the sign to print the message
$message = `cat /tmp/textfile` ;

print "\001" . "Z" . "00" . "\002" . "AA" . "\x1B" . " $ARGV[0]" . "\x1C" . "$ARGV[1]" . $message . "\004";

Alpha Sign Syntax

"\001" "Z" "00" "\002" "AA" "\x1B" "t" "\x1C" "1" Hello World "\004"
Value Meaning Code Type
\001 SOH Start of Header
Z Direct at all Signs Type Code
00 All Signs Should Listen Sign Address
\002 Start of Text Character Start Type
A Text File Write File Type
A A File Label
\x1B ESC Start of Mode Field
t compressed text MODE TAG (see below)
\x1C color control code Control Code
1 red COLORTAG (see below)
Hello World Text Message
\004 EOT End of Transmission


MODE TAG and COLORTAG

The key parts of this are the MODE TAG and COLORTAG>/b>, there is full documentation available for this[5] but here are the pertinent parts.

MODE TAG
a Regular smooth scroll, right to left
b Appear. Centers as much of message on screen, waits, and displays rest of message in similar manner
c Appear with flashing.
d Auto. Randomly picks an effect for each part of the message, as opposed to the message as a whole.
e Scroll up.
f Scroll down from top.
g Jerky scroll from right to left.
h Jerky scroll from left to right.
i Wipe up from bottom, covering text.
j Wipe down from top, covering text.
k Wipe over from right to left, character by character, not by pixels.
l Wipe over from left to right, character by character.
m Scroll up. Same as 'e'?
n This is doing something weird based on message itself. Will have to investigate.
o Auto/Random (same as 'd'?)
p --> CENTER <-- Text appears at sides and squishes content in.
q <-- CENTER --> Text splits in center and pushed content out.
r --> COVER <-- New text covers old out to in.
s <-- UNCOVER --> New text uncovers in to out.
t Compressed text! Using this mode the sign tricks your eyes into seeing more characters than it is capable of physically producing. Scrolls right to left.
u Fast Appear.
v Medium Appear.
w Maybe medium-slow appear.
x Same as 'p'?
y Same as 'q'?
z Same as 'r'?
@ The sign went blank.
COLORTAG
1 Red
2 Green
3 Amber
4 Dim red
5 Dim green
6 Brown
7 Orange
8 Yellow
9 Rainbow 1
A Rainbow 2
B Color mix
C Autocolor

Stock Ticker

The sign can be used for a number of purposes (to display weather forecasts from an RSS feed, to display news feeds as a news ticker) As a proof of concept the following script uses the sign to display a stock ticker that gets it's data from yahoo. It then colors the prices green if they are positive/up and red if they are negative/down for the day.

First install perl and make

apt-get install perl make

Then install the quote package [6]

wget http://www.circlemud.org/pub/jelson/quote/quote-0.05.tar.gz
tar -xvzf quote-0.05.tar.gz
cd quote-0.05
./configure
./make
./make install

install curl and lynx so that they can be used later to get content from the web.

apt-get install curl lynx

Lastly here is a shell script to display the ticker

leddisplay

# /usr/local/bin/leddisplay
#!/bin/sh
# Stock ticker symbols
#
PTE=/usr/local/bin

stocks="  ^DJI ^IXIC ^GSPC "

        quote $stocks | cut -d"(" -f1 |sed 's/^/\x1C9 \x7F \x1C3 /' | sed '/ -/s/:/\x1C1/g' | sed '/ +/s/:/\x1C2/g' > /tmp/textfile
        $PTE/alphamon.pl t A  > /dev/alpha
  

References

  1. 220 brochure (Pdf)
  2. Add a Serial port to the ARM9 Linkstation
  3. Building a Data Cable for Alpha LED Scrolling Signs
  4. Using the Alpha 215C with Linux
  5. Alpha Sign Communications Protocol (pn 9708-8061)
  6. quote -- command-line stock quote display