Vishal Patel

Wireless Character LCD

The objective for this project was to build a portable (i.e. battery-powered) unit containing a HD44780 Character LCD that could be updated through a wireless link.

Contents

  1. Design
    1. Enclosure
    2. LCD Driver
    3. Wireless Link
    4. Power Supply
  2. Construction
    1. Software
    2. Hardware
  3. Result

Design

The basic layout is illustrated in the diagram below, followed by additional details about the individual components.

Wireless Character LCD Layout

Wireless Character LCD Layout

Enclosure

I thought it would be nice to show off the internals of this device, so I chose the SERPAC 252-C. It has a clear top, it's a reasonable size for this project, and it has a built-in 9 V battery compartment. There are many other options here to suit any aesthetic taste, but I like the SERPAC's form factor.

LCD Driver

In this portable unit, the character LCD will need to be updated by serial input to a microcontroller driver. This problem has been solved many times over, so there's no need to reinvent the wheel here. I prefer Brian Riley's K107 kit built around Peter Anderson's LCD117 controller. It's versatile, easy to modify, easy to use, and very well-documented; it will work great for this project (and many others).

For the wireless communication link, I chose to use a low-power, (relatively) short-range, ZigBee device. The 1 mW Digi (MaxStream) XBee modules fit the bill nicely, and they're reasonably priced (even more so if you're fortunate enough to grab them on SparkFun's Free Day). While you're there, also pick up the XBee Explorer USB board and the XBee Explorer Regulated board so you can interface with the modules serially on both ends of the link.

Power Supply

The K107 and the XBee Explorer boards both operate off a 5 V input, so we need an efficient way to generate that from our battery. The SERPAC enclosure has a 9 V battery compartment. A 9 V cell is inferior to 2–4 AAs with a switching regulator in many respects; unfortunately, the battery door opening and geometry of the LCD within the SERPAC enclosure prevented me from substituting AA cells. So, I used the MAX639 buck regulator to drop my 9 V supply to 5 V efficiently. The MAX639 is sufficient for the amount of current that the LCD and XBee draw; just use the typical application circuit from the data sheet.

Construction

Software

Configuring the XBees is straightforward, thanks to excellent documentation. All that's needed are a few AT commands. Plug each XBee into the USB Explorer board in turn, and configure them to recognize each other (enable AES encryption if you want). Make one a Cyclic Sleep Remote and the other a Cyclic Sleep Coordinator. The Remote will be installed in the portable unit, and sleeping greatly reduces power consuption. The always-on Coordinator will queue and transmit updates from the server.

The updates you choose to display are up to you; I'm using a feed for local news headlines, but you can certainly do inbox status updates, social network updates, or whatever else you like. Once you've polled and parsed your data source, you'll need to send an update to the Coordinator XBee on the USB Explorer connected to your server. A very easy way to do this is with PySerial. Assuming you're running Linux, you may need to configure a udev rule to assign a writable device node to the FTDI chip on the USB Explorer. The process is almost identical to the one used for the Concept2 Performance Monitor in RowMetrics; this time, include a NAME="xbee" assignment in the udev rule to give the FTDI device node a constant identifier that you can provide to PySerial.

Hardware

SERPAC 252-C Enclosure

The SERPAC enclosure with LCD mounting holes drilled in the cover.

Character LCD with K107 Backpack

The mounted LCD module with a K107 backpack.

XBee Coordinator

The popular and versatile Tic Tac enclosure before (left) and after (right) housing the XBee Coordinator. This is the most delicious part of the project.

XBee Remote

The Remote module on the XBee Explorer Regulated board.

MAX639 Power Supply

The power supply with MAX639 buck regulation. The circular component at bottom left is a last-minute addition: a piezo buzzer for audio alerts, driven by the K107.

Result

A couple of images of the finished unit are below. My 250 mAh 9 V rechargeable NiMH cells last approximately 15 days until brownout.

Wireless Character LCD

The wireless character LCD displaying a news headline.

Wireless Character LCD

The wireless character LCD displaying a news headline.