-
Notifications
You must be signed in to change notification settings - Fork 34
Home
File:SignHackMess.png File:AlphaSign.png
Fire a message from IRC to the physical space with our scavenged red LED Alpha signs.
'''Cost in 2001:'''
Alpha 4160R, Red with IR Keyboard $2,199.00
ALPHANET PLUS FOR WINDOWS SOFTWARE $199.00
'''Cost in 2013:'''
3 X Alpha 4160R Free! (Dumpster Dive)
Open Sourced Software Minds $20.00 ( In food ;) )
IRC Client -> CMD:!sign {msg} -> IRC Server (Freenode) -> ZNC -> EggDrop -> alphasign.tcl -> signage.pl -> Alpha Protocol -> RS232 -> Alpha Sign
TeknoJuce & DGNP
Creating a /dev/alpha Device on Linux
Creating the device is as simple as figuring out what serial port you've got the sign hooked up to. For instance, COM1:
If you are brave, you can give the world read/write access to your sign. This may be important, especially if you are using a web server to update the sign.
Configuring the Communication Settings for Binary Access
Commands to the sign use control characters. (See the protocol.) These settings provide a 9600,E,7,1 connection to the sign for use with the RJ12 to RS232-DB9 adapter.
$ stty 0:705:1ad:0:3:1c:7f:15:4:0:1:0:11:13:1a:0:12:f:17:16:0:0:73 < /dev/alpha
This is the same as $ stty 9600 -opost -ocrnl -onlcr cs7 parenb -parodd < /dev/alpha Testing the sign
alphatest.pl
#!/usr/bin/perl
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";
$message = "It Worked!"; print "\001" . "Z" . "00" . "\002" . "AA" . "\x1B" . " b" . $message . "\004";
Make the code executable and run it, redirecting output to the sign's device: $ chmod u+x alphatest.pl $ ./alphatest.pl > /dev/alpha
The sign should now read "It Worked!"
eggdrop.confsource scripts/alphasign.tcl
alphasign.tcl
# Script name : alphasign.tcl
# Script Version: 2013033001
# Script Author : TeknoJuce, DGNP
# [E-Mail: wess@unlondon.ca]
# Script Desc. : Fire's messages to an Alpha Sign (4160R)
# with !sign
# Please edit the following variables: (Channel to which a msg is to be
# sent, How often that message should be sent, and what to send; in that
# order)
#package require tclperl
#set interpreter [perl::interp new]
#$interpreter eval {print "Hello World\n"}
#perl::interp delete $interpreter
#set aschan #unlondon
#set asideltime 5
#set asidlemsg "AlphaSign - TCL By TeknoJuce & Perl by DGNP"
bind pub - !sign pub_sign
proc pub_sign {nick uhost hand chan arg} {
putserv "NOTICE $nick :Displayed your message on sign #1!"
exec -- ~/signage.pl $nick:$arg
}
putlog "** AlphaSign.tcl by TeknoJuce & DGNP : loaded"
signage.pl
#!/usr/bin/perl -w
###########################################
## PERL FILE FOR UPDATING THE ALPHA SIGN ##
##########################################
## http://www.alpha-american.com/alpha-manuals/M-Protocol.pdf
## Location of the sign's serial port.
$filename = "/dev/alpha";
open( LED, "> $filename" );
binmode( LED );
$message = join(' ', @ARGV);
# Tell the sign to do two short beeps before sending the message.
print LED "\0\0\0\0\0\0\0\0\0\0\0" # Synchronize with the sign, multiple 0's ar$
."\001" # Starting packet command, (\001 -> ^A)
."Z" # Type Code (Z->All Signs)
."00" # Sign Address (00->All Signs)
."\002" # Packet section divider (\002 -> ^B)
."E" # Command Code (E->Special Function)
."(" # Generate Speaker Tone
."2" # (1->Generate three, short beeps)
."01" # (10->Set speaker frequency, 00-FE)
."1" # (8->Length of tone, 1-F)
."1" # (2->Number of times tone is repeated, 0-F)
."\004"; # End of packet (\004 -> ^D)
# Construct packet to send to the sign, writing to textfile.
print LED "\0\0\0\0\0\0\0\0\0\0\0" # Synchronize with the sign, multiple 0's ar$
."\001" # Starting packet command, (\001 -> ^A)
."Z" # Type Code (Z->All Signs)
."00" # Sign Address (00->All Signs)
."\002" # Packet section divider (\002 -> ^B)
."A" # Command Code (A->Write TEXT FILE)
."A" # File Label (A->Default Name)
."\033" # Escape Character (Needed)
."0" # Display Position (0->Fill Screen)
."g" # Mode Code (g->Roll Left)
."$message" # The actual message to save to the text file, to be displ$
."\004"; # End of packet (\004 -> ^D)
## Close connection with the sign.
close(LED);
exit();
[http://wls.wwco.com/ledsigns/alpha/protocol.html Serial Protocol for Alpha LED Scrolling Signs]
[http://wls.wwco.com/ledsigns/alpha/cable.html Building a Data Cable for Alpha LED Scrolling Signs]
[http://test.drscomp.com/2013/02/02/raspi-and-betabrite-twitter-and-mplayer-feed-ticker/ RasPi and BetaBrite – Twitter and MPlayer feed ticker]
[https://alphasign.readthedocs.org/en/latest/ alphasign API — alphasign 1.0 documentation]
[http://log.f0rked.com/projects/alphasign alphasign | quadpoint.org]
[https://github.com/jon-proulx/alphasign jon-proulx/alphasign · GitHub]
[https://github.com/mimedia/signboard mimedia/signboard · GitHub]
[https://github.com/brmlab/alphasign brmlab/alphasign · GitHub]
[http://test.drscomp.com/2013/01/14/first-step-with-raspi-and-betabrite/ First Steps with RasPi and BetaBrite]
[http://dens-site.net/betabrite/betabrite.htm Denis Hruza - BetaBrite LED Display - Main]
[http://www.alpha-american.com/p-alpha-message-loader.html Alpha-American Programmable Signs - 1-800-223-4636 to Order - Alpha Message Loader]
[http://www.teksolutionsllc.com/download/alphaprotobro.pdf www.teksolutionsllc.com/download/alphaprotobro.pdf]
[http://www.remote-control.net/software/ledsign/ LCDSignHelloWorld Software for Betabrite and Alpha LED Signs]
[http://www.alpha-american.com/9704-0002.html Alpha-American Programmable Signs 1-800-223-4636 - Alpha Remote Control Keyboard Programming Manual]
[http://www.london-electronics.com/pdf/alpha_comms_protocol.pdf www.london-electronics.com/pdf/alpha_comms_protocol.pdf]
[http://www.chadmark.com/Ftp-pdf/alpha-communications-protocol.pdf www.chadmark.com/Ftp-pdf/alpha-communications-protocol.pdf]
[http://www.alpha-american.com/9708-8061.html Alpha-American Programmable Signs 1-800-223-4636 - Alpha Communications Protocol Manual]
[http://wls.wwco.com/ledsigns/alpha/led97088061.html ALPHAÔ]
[http://wls.wwco.com/ledsigns/alpha/led97088061.html html]
[http://www.tummy.com/presentations/ledsign/ Custom LED Sign in Linux]
[http://wls.wwco.com/ledsigns/alpha/led97088061.doc 97088061.doc]
[http://wls.wwco.com/ledsigns/alpha/AlphaLinux.html Using the Alpha 215C with Linux]
[https://code.google.com/p/mpdledsigns/source/browse/trunk/scripts/mpdsign.py?r=2 mpdsign.py - mpdledsigns - LED Sign Drivers for MPD - Google Project Hosting]
[http://web.archive.org/web/20120311115857/http://www.i-hacked.com/index.php?option=content&task=view&id=141 I-Hacked.com Taking Advantage Of Technology - Hacking BetaBrite LED Signs PART1]
[http://betabrite.rubyforge.org/betabrite/ betabrite-1.0.3 Documentation]
[https://code.google.com/p/mpdledsigns/source/browse/trunk/drivers/betabrite.py?r=2 betabrite.py - mpdledsigns - LED Sign Drivers for MPD - Google Project Hosting]
[http://www.andrewkilpatrick.org/?p=moving_sign_2 Moving Sign 2]
[http://www.amqp.org/ Home | AMQP]