-
Notifications
You must be signed in to change notification settings - Fork 31
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: [email protected]] # 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]