Product Review: Pro-Lite Scrolling Message Signs

 in
A review of the Pro-Lite Tru-Color II PL-M2014R, an affordable multi-color LED scrolling message board that is capable of being controlled by a standard RS-232 serial port.
  • Manufacturer: Pro-Lite

  • E-mail: info@prolite.com

  • URL: http://www.pro-lite.com/

  • Price: $150 US

  • Author: Walt Stoneburner

The Pro-Lite Tru-Color II PL-M2014R is an affordable multi-color LED scrolling message board that is capable of being controlled by a standard RS-232 serial port. The sign is obtainable from Pro-Lite directly (http://www.pro-lite.com/), but can also be purchased at various discount warehouses for approximately $150. The serial cable and Windows software are sold separately.

This article is not just a review; it can serve as a primer for Pro-Lite's PL-M2014R with ROM release 5.24Q and 32K of memory with Trivia mode, basically your standard sign. Until now, not much developer information has been available to the public, meaning signs were usually configured with the included infrared remote control to display static messages. For very little money, it is possible to build your own serial cable and control the sign using Linux to display more than static text.

The business and personal applications for a highly visible sign are almost limitless: reporting days until software delivery, announcing traffic congestion, providing the weather, showing the date and time, sending public messages, reporting system load, announcing new mail, showing who's logged in, warning when disk space gets low, login information, announcing unexpected server outages as a watchdog, etc.

Communicating with the sign is almost as simple as beaming text out the serial port; however, a bit of text manipulation is necessary in order to get the sign to respond and do advanced tasks. Linux handles the serial port communication, so sending information to the sign appears as trivial as writing to a file.

Luckily, the majority of the work can be accomplished by simple scripts. All you need is a basic understanding of the shell, AWK, PERL or Python, and you can be running in almost no time. The first hurdle is to build a cable and configure Linux to talk out the serial port.

Cable Construction

Figure 1. Female DB9 Adapter

The first step is wiring an RJ12 to female DB9 adapter. It requires no tools, and an adapter kit can be purchased at most computer supply stores for about $2 US. The only other thing you need is a length of RJ12 cable with male adapters at each end. This means a standard telephone cord will do nicely. Your cable will most likely have the standard colors black, red, green and yellow, in that order.

Cables come in two flavors: straight-thru and reversed. You'll need to take the RJ12 cable and put it end to end (like a loop) to find out which kind of adapter you need to build.

Figure 2. RJ12 Adapter Diagram

One of two things will be noticeable: either the wires will match black to black, red to red and so on, or they will reverse their order showing black to yellow, red to green and so on.

If the cable is a straight-through, where the colors match, wire your RJ12 to a DB9 adapter using Pin 2 as green, Pin 3 as red and Pin 5 as yellow. If the cable is reversed, then where the colors reverse sequence, wire your RJ12 to a DB9 adapter using Pin 2 as red, Pin 3 as green and Pin 5 as black.

Figure 3. RJ12 to DB9 Wiring

Shove the unused adapter wires into the casing and snap the adapter shut. Take care not to let the exposed ends touch anything metal inside the adapter casing. You may want to clip the unused wires. Put an extension cable on your serial port and connect the adapter wires directly to the extension cable in order to test the wiring configuration before pushing the pins into the connector.

When all is said and done, one end of the RJ12 goes into the side of the LED sign, the other into the adapter you just made, and the adapter plugs into the computer.

Configuring Linux to Talk to the Sign

My sign is plugged into COM1, also known as /dev/ttyS0. I've elected to use a symbolic link to the sign, in the event I ever decide to change to another serial port in the future. To make the link, as root type:

ln -s /dev/ttyS0 /dev/prolite

I tend to shy away from doing development as root. Putting security issues aside for the moment, we can make the device world-writable by typing:

chmod a+rw /dev/prolite
The sign communicates using No Parity, 8 Bits, 1 Stop Bit; no handshaking of any kind (hardware or software) is used. Early versions of the sign work only at 300 baud, but they can be upgraded to 9600 baud. All signs I've encountered had the 9600 capability right out of the box. The bottom line is that all signs are capable of communication, and even at 300 baud you can outrun the sign. The only drawback is that the sign's baud rate has to be set by the remote control, according to the setup in the manual. This needs to be done only once.

In theory, the sign requires a 15ms delay between each character sent to the sign. I've found that Linux's device driver seems to work just fine without having to do anything special in the software.

stty speed 9600 cs8 -parenb -cstopb cread \
   -clocal -crtscts -ignpar -echo nl1 cr3 < \
   /dev/prolite

Naturally, you can substitute any baud rate the sign will handle for the 9600. This command will work when you aren't root because it is world-writable.

The most important piece of information for communicating with the sign is that each command sent to the sign must end with a carriage return/newline pair. This is ctrl-M ctrl-J on the keyboard or 0x0C 0x0A in hexadecimal. C programmers will recognize it as \r\n. If you want Linux to handle the end-of-line sequence for you, type the command:

stty opost -ocrnl onlcr < /dev/prolite

When you send a newline, Linux will send both carriage return/newline automatically. Text can now be listed or redirected to /dev/prolite from the shell. If you want to send the carriage returns yourself, type:

stty -opost -ocrnl -onlcr < /dev/prolite
Where the options are defined as:
  • opost: postprocess the output stream.

  • -opost: do not postprocess the output stream.

  • -ocrnl: do not convert carriage returns into newlines.

  • -onlcr: do not translate each newline into a carriage return/newline pair.

  • onlcr: translate each newline into a carriage return/newline pair.

The stty command allows for a shorthand representation of all the termios structures that define the device characteristics. For 9600,N,8,1 with automatic carriage returns, type on one line:
stty 0:705:bd:0:3:1c:7f:15:4:0:1:0:11:13:1a:0:
12:f:17:16:0:0:73 < /dev/prolite
For 9600,N,8,1 with no automatic carriage returns, use the line:
stty 0:700:bd:0:3:1c:7f:15:4:0:1:0:11:13:1a:0:
12:f:17:16:0:0:73 < /dev/prolite

______________________

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

im looking for pro-lite scrolling message signs

tatan's picture

well i want to know if you guys would like to help me.. im looking for a scrollong message signs exacly as the picture that you have on the top
please help i want to buy one of this

scrolling message pc board

Ray Phillips's picture

We are looking to purchase scrolling message boards in quantities of 100 pieces

Scrolling message boards

Guy Tieman's picture

Hello Ray,
My name is Guy Tieman and I work for a sign and mill company. I just stumbled on this site while reseaching a few things and saw your interest in scrolling message boards. We are an OEM of several different LED displays. We are located in Fort Myers, Florida. Our number is (239) 936-9154. If you are still looking give me a call or e-mail me. I might be able to help.
Thanks for your time,
Guy

Encoded

Leon's picture

I have a led board which has 2 lines and 120x16 leds. The protocol described on this page is simular to the protocol used in my led board only it has some kind of security code in it.

For example:
This wil return a ACK, and the led board will show the message:
<ID01><L1><PA><FE><MA><WC><FE>test62<E>

This wil return a NACK, and the led board does not change:
<ID01><L1><PA><FE><MA><WC><FE>test80<E>

So there is a code right after the text... Another example:
<ID01><L1><PA><FE><MA><WC><FE>Leon ter Linden1B<E> = ACK
<ID01><L2><PA><FE><Ma><WC><FE>Leon ter Linden43<E> = NACK

Does anyone know how to calculate the code that comes after the text?

xor checksum

Are's picture

Here is the code to calculate the checksum.
The checksum is an xor of all the characters sent, without the first ID tag and without the end E tag.


static unsigned char
checksum(const char *str, unsigned char init)
{
unsigned char i = init;

while (*str != '\0') {
i ^= *str;
str++;
}

return (i);
}

int
main(int argc, char *argv[])
{
unsigned char csum = 0x0;

if (argc != 2)
exit(-1);
else
msg = argv[1];

csum = checksum(msg, csum);
printf("%02X\n",csum);
return (csum);
}

encoded

Are Pedersen's picture

I also have this display. It appears that it is a simple signing pattern, but I haven't figured it out just yet. Finding anything on this on the web seems useless.

Prolite PL - 2111

Anonymous's picture

Hi,

any reason why there my loader input terminals 14 and R are soldiered together? Will the above work for model Pl 2111 ?

streaming text

jdgalore's picture

I was wondering if any one knows how i can send streaming text to a prolite say text from a news ticker or scrolling music text from musicmatch
? ? ? ? ? ?

Re: Strictly On-Line: Product Review: Pro-Lite Scrolling Message

Anonymous's picture

is there a way to reset the sign to factory?

The graphics are all jumbled.

Re: Strictly On-Line: Product Review: Pro-Lite Scrolling Message

Anonymous's picture

That's the way a Pro-lite sign works.
All jumbled.

Re: Strictly On-Line: Product Review: Pro-Lite Scrolling Message

Anonymous's picture

if you are using serial interface, send a

message to it to erase everything
--ed

Re: Strictly On-Line: Product Review: Pro-Lite Scrolling Message

Anonymous's picture

Walt,

I am trying hard to communicate with my Tru-ColorII and I've had little support from the company. Your explanation, it seems will help me. I wish "a lot".

Thank you

Marcos Ficarelli - Sao Paulo Brasil

ficareli@terra.com.br

Congratulations!!!

Anonymous's picture

Wanderful!!!

Realy congratulations friend.

Leandro
drinhow@hotmail.com

Re: Strictly On-Line: Product Review: Pro-Lite Scrolling Message

Anonymous's picture

How do I get a new keypad for a Pro-Lite PL4012 or who is a dealer for this product. Thank you..

Re: Strictly On-Line: Product Review: Pro-Lite Scrolling Message

Anonymous's picture

Their Phone # is 1-714-668-9999 or 9998.

Webinar
One Click, Universal Protection: Implementing Centralized Security Policies on Linux Systems

As Linux continues to play an ever increasing role in corporate data centers and institutions, ensuring the integrity and protection of these systems must be a priority. With 60% of the world's websites and an increasing share of organization's mission-critical workloads running on Linux, failing to stop malware and other advanced threats on Linux can increasingly impact an organization's reputation and bottom line.

Learn More

Sponsored by Bit9

Webinar
Linux Backup and Recovery Webinar

Most companies incorporate backup procedures for critical data, which can be restored quickly if a loss occurs. However, fewer companies are prepared for catastrophic system failures, in which they lose all data, the entire operating system, applications, settings, patches and more, reducing their system(s) to “bare metal.” After all, before data can be restored to a system, there must be a system to restore it to.

In this one hour webinar, learn how to enhance your existing backup strategies for better disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible bare-metal recovery solution for UNIX and Linux systems.

Learn More

Sponsored by Storix