Prototype: Network LCD backpack

in #twatch, Prototypes by Ian | 13 comments

twatch-pcb.450

The most recent documentation is now on the wiki.

Character LCD screens that scroll information are a popular case mod. They’re usually controlled through a parallel port, serial port backpack, or USB backpack (more). This article demonstrates our open source ethernet network LCD backpack.

demo.250LCD control programs like LCD Smartie (Windows) and LCDproc (Linux, OSX?) 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.

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 ethernet LCD packpacks for $45, including worldwide shipping. Get them while they last because we won’t make more soon. If you missed this project, sign up here to be notified of future preorders.

Concept overview

overview

Last week we introduced the Twitter scrolling features of the #twatch 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. Here’s some options for OSX.

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.

This video shows it in action, the LCD is receiving display data from LCD Smartie over an ethernet network.

Hardware

profile.450

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.

Firmware

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.

Bridge a serial port to a TCP server

lcdsmartie-tcpforward

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.

vsp-1.450

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.

vsp-2.450

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.

vsp-3.450

Next, create a TCP client to connect the serial port to the backpack’s TCP server. Click next.

vsp-4.450

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.

vsp-5.450

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

lcdsmartie-displayplugin

The final step is to configure your LCD control program to use the network bridge.

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.

Taking it further

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.

Get one

If you don’t want to build your own, there’s a few assembled ethernet LCD backpacks at Seeed Studio for $45, including worldwide shipping. Get them while they last because we won’t make more soon. If you missed the this preorder, sign up here to be notified of any future #twatch ethernet LCD backpack preorders.

This entry was posted in #twatch, Prototypes and tagged , , , .

Comments

  1. Mio says:

    There seem to be a lot of free I/O pins on that microcontroller. Why not send them off to a header for some generic ethernet controlled digital I/O support, as well? That would make this a bit more useful, I think.

  2. Ben Combee says:

    I just filed a bug with the LCD Smartie project to get them to add direct support for Ethernet connections. See https://sourceforge.net/tracker/?func=detail&aid=2860752&group_id=122330&atid=693139 .

  3. Ian says:

    This blog has some info on LCDs and OSX, looks like they have an OSX port of LCDproc too:
    http://maclcd.blogspot.com/

  4. ss says:

    Too bad it needs a wall wart… give it Power over Ethernet!

  5. TimE says:

    There is an ethlcd interface in LCDproc CVS. Summary of protocol on this page:

    http://manio.skyboo.net/ethlcd/

  6. Ian says:

    @ss – We looked at POE, but in the end it would add a few extra bucks per board and we didn’t have any equipment to test it.

    Is there some sort of POE break out board that lets you tap the POE power supply?

  7. Nick says:

    Hey, I really like the idea of this with POE. Do like Nortel did for their first batch of phones… use a pair of “Y” shaped adapters to insert on one end and break out to the power-mini plug-in at the other… that makes it an optional build/purchase… and would make me happy :-)

  8. ewertz says:

    Ian, this uses the guy that can only be flashed ~100 times, right?

    Just thought that I’d ask/mention this in case anyone wants to try to do development on this.

    I’d crave one of these that uses your v1/dev design with the PIC24+ENC and pins brought out to headers as a development system, even for $10 more.

    Just a thought.
    Nice job though!

  9. Ian says:

    @ewertz – Yes. The ethernet PICs have limited write cycles. I mentioned it a few times in the article, but it can’t be said enough.

    The PIC24 version is nicer to develop for, but the single chip solution is the least expensive. Ideally, it would use a higher pin count chip for a full 8bit interface.

    Also, the ethernet bootloader is only for the ethernet PICs, not a PIC+ENC combo. The PIC could still be equipped with a serial bootloader, but that didn’t seem nearly as slick or accessible.

  10. Ian says:

    Here’s more about the v1 prototype in my confessions post.

  11. Brett says:

    @ss & @Nick, there are some cheap PoE injector Y-cables available on ebay, for instance item 270521896036 right now. If you’re handy with cables/plugs, as anyone reading this may well be :) then you can probably knock up a set of cables for yourself that are less intrusive than these (I reckon at the LCD end you want them extremely short and neat). Excellent for people like me with no real PoE switch but want to run multiple devices like this off a common transformer

Leave a Comment

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Notify me of followup comments via e-mail. You can also subscribe without commenting.