Introduction: Networked LCD Backpack With LCD Smartie
LCD control programs like LCD Smartie (Windows) and LCDproc (Linux) can use the ethernet LCD backpack just like the serial and USB type, but over a network. It's useful for monitoring any system from anywhere on a network: put LCDs where you can't put a computer, or monitor a computer that's difficult to reach.
We use it to scroll system info, RSS feeds, playlists, new email, Folding@Home stats, etc. away from the PC.
This video shows it in action, the LCD is receiving display data from LCD Smartie over an ethernet network. In this article we show you how to redirect LCD Smartie output from a serial port to the LCD backpack. This is part 2 of the network LCD backpack project, read part 1 here.
Seeed Studio has a few assembled #twatch ethernet LCD packpacks for $45, including worldwide shipping.
See this article with the original formatting at the Dangerous Prototypes blog.
Last week we introduced the Twitter scrolling features of the LCD backpack. It also has a TCP server on port 1337 that accepts Matrix Orbital formatted commands. Matrix Orbital backpacks have wide software support, LCD Smartie and LCDproc are open source options.
Most control programs drive LCDs through parallel ports and a few serial or USB backpacks. Network TCP output isn't yet an option. We use a bridge to forward LCD Smartie's serial port output to the network LCD backpack.
Step 1: Hardware and Firmware
We introduced the PIC 18F67J60 ethernet LCD backpack hardware last week. Check out the previous article for a detailed hardware overview.
Download the latest files from the project Google Code page and build your own. You can also buy assembled hardware for $30 ($45 w/LCD), including worldwide shipping, until September 23, 2009.
A TCP server listens on port 1337 for Matrix Orbital-style LCD commands. Computers can send commands to this port just like it's a serial LCD backpack. We emulated a Matrix Orbital backpack because most character LCD control programs support it.
Real-time Twitter feeds scroll on the LCD until the TCP server receives a command that places the cursor at position 0. When this command is received, Twitter updates end and the TCP server takes full control of the LCD.
We added two non-standard commands to the Matrix Orbital set. 153 displays the IP address as assigned by DCHP, and 154 resumes Twitter mode. No clients currently implement them.
Step 2: Bridge a Serial Port to a TCP Server
LCD control programs usually work with parallel port, serial, and USB LCDs. Network TCP isn't yet an option. This section shows how to forward LCD Smartie serial port data to the ethernet LCD backpack.
We're using Windows, so we grabbed the freeware version of Virtual Serial Port Emulator, a simple port redirector. If you have Linux or OSX suggestions, please leave them in the comments or the forum.
Step 3: Create a Virtual Serial Port
First, we setup a virtual serial port pair. The LCD control program (LCD Smartie) will connect to one of these ports, the other connects to a TCP client we setup later. Click next.
Choose a number for each serial port. The port number should be free on your system. We set it to COM7 and COM8. We checked emulate baud rate, though it's probably not necessary. Click OK.
Step 4: Create a TCP Client
Next, create a TCP client to connect the serial port to the backpack's TCP server. Click next.
The TCP server address is the same as the IP address shown on the LCD at power-on. The server listens on port 1337. Uncheck DTR/RTS depend on connection status, we don't need flow control.
The source serial port is one side of the virtual serial port pair we just created (COM7 and COM8). We connected the TCP client to COM 8, and configured it for 115200bps, 8/N/1. Click OK.
The serial port to TCP server bridge should be active. TcpClient status will read OK if the ethernet LCD backpack responded at the IP address
Step 5: Configure LCD Control Program
Choose a Matrix Orbital type display plugin. Configure it to use the free end of the virtual serial port pair (COM7 in our example). Set the speed to match the virtual port setting (115200bps). You may have to restart to use the new settings.
Configure the LCD program to show RSS feeds, email notifications, server ping time, PC stats, etc; some have extra plugins too. The output will go through the virtual serial port to the local network, and display on the LCD. This video shows it in action, the LCD is receiving display data over an ethernet network.
Step 6: Conclusion & Where to Get One
LCD Smartie and LCDproc are open source, so anyone can add a few enhancements for ethernet LCD backpacks. It would be great if they could control an LCD backpack directly over TCP, without a bridge.
Most LCD control programs can react to buttons. Two buttons could be connected to the backpack's programing header, or a new PCB could be made with multiple button connections.
The Matrix Orbital command set supports software contrast adjustment, which would be really handy for remotely located LCDs. This could probably be accomplished by applying pulse-width modulation to the contrast adjustment pin.
The ethernet LCD backpack firmware can be upgraded over the network, see part 1 for instructions. We'll continue to improve the firmware and add new features. Check the project Google Code page and the forum for the latest downloads.
Seeed Studio has a few assembled #twatch ethernet LCD packpacks for $45, including worldwide shipping. Get them while they last because we won't make more soon.