Opencockpits USBLCD Card
Reviewed by Jack Whaley-Baldwin
November 2010

Introduction

Liquid Crystal Displays, or LCDs for short, are thin, flat units that utilise the specialist light properties of Liquid Crystals. Multiple layers of film, glass, crystal and reflective surfaces allow an image to be formed if an electronic field is passed through the crystals.

LCDs can be found almost anywhere; from aircraft glass cockpits, to everyday watches and calculators. With so many different types of LCD, it is sometimes hard to distinguish between different types. If I were to ask you; “What's the difference between an Active Matrix Addressed LCD and a Standard Nemantic LCD”, would you know the answer? Probably not. However, at least only for the purposes of this article, you'll only need to remember one.

The HD44780 Standard LCD is a universally recognised electronic display unit. It is usually found with either a 14 or 16 pin configuration (the extra two pins in the 16-pin configuration are for LED back-lighting, optional feature); each pin being designated a specific function.

For more information on this pin configuration, please examine the following table, extracted from a HD44780 manual:

These LCD Displays come in pre-set sizes. Most HD44780s contain about 20 “Cells” (a “block” on the LCD display that can show anything from a letter or number to an exclamation mark) horizontally, and 1, 2 or 4 rows. This means that LCD can almost be compared to an Excel Spreadsheet or office-suite table configurator, as they have a pre-defined number of both rows and columns.

For the purposes of both my own home cockpit and this review, I used the 20x2 HD44780 Alphanumeric Super-twist LCD distributed by Maplin
Electronics, UK. This module will cost around £22.99 (including VAT) + shipping.

For more information on this specific display, please look at the “useful links” section found succeeding the conclusion of this review.

The Opencockpits USBLCD Card

Opencockpits have engineered a USB Interfacing card which controls the HD44780 Standard LCD types through use of a home-computer. This card, suitably named the “USBLCD Card”, can allow an LCD display to expose almost any type of alphanumeric character. Provided the appropriate wiring is completed successfully, and the correct type of LCD has been chosen, the card has an enormous amount of potential for many different applications.

The Card can be purchased from Opencockpits official store or AviationMegastore.com for 29 Euros, plus shipping and VAT (where
applicable). Two varieties are available; a PlugnPlay edition, where everything is wired and configured beforehand (ready to use); or a “kit” version, where the customer must build the USBLCD Card himself. The kit version is slightly cheaper, costing 21 Euros, plus shipping and Vat (where applicable).

Of course, this review primarily focuses on the Flight Simulator (X-Plane, FS2004 or FSX) capabilities of the USBLCD Card.

Specifications:

  • USB Control for up to 4 Liquid Crystal Display Units (HD44780 Type) – Native support for a wide variety of HD44780 LCD displays
  • Row/Column Cell support from configurations 8x2 up to 40x2
  • Controlled through “IOCLCD.exe”, a freeware program available from Opencockpits' website, and optionally SIOC scripting software
  • Simple USB connection to a PC
  • Windows XP/Vista/7 compatible
  • Can be interfaced using SIOC software to display FSUIPC variables from X-Plane, FS2004 or FSX
  • Four-port connection cable included (so you can connect 4 LCDs without having to purchase any cable)
Card layout and standard features

The USBLCD Card comes pre-built and ready to accept a Liquid Crystal Display Unit. This means that everything on the card is completely finished,
and, as such, will look like this:

In reference to the above diagram, the following components correspond to the following labels:

  • J1 - USB Computer Connector
  • J2 - Power Connector (already connected)
  • J3 – 40-pin IDC connector block (already connected)
You'll notice that, in the above description, I mentioned that J2 and J3 are “already connected”. J2, the power connector, has been wired to two pins on the IDC block connector, which supply the card with power. Furthermore, the IDC connector has already been connected with a four-port expansion cable.

All in all, the above paragraph means that the card has been pre-wired to incorporate the 5V supply into its circuit, and has been made ready so that all you literally need to do is plug your LCD unit into one of the 4 available ports.

This is a fantastic improvement over the USBServos card, which requires you yourself to connect the 5V power supply up. Whilst this is simple, these pins are extremely fragile. Luckily, Opencockpits have taken this obstacle out of the USBLCD Card user process.

Getting Started (wiring the card)

Whilst the concept, design and software controllability of the USBLCD Card is fairly simple in principle, setting up the card is a very tricky process. Very precise soldering and wiring skills must be utilised in order to achieve a fully functioning LCD unit.

Firstly, one must establish which pin on the LCD corresponds with which pin on the Card. As previously mentioned, a HD44780 Unit will contain either 14 or 16 pins. To find out which pin goes to which, please look at the table to the right:

Please note, the USBLCD Card has 40 pins, of which only 14 (or 16) are used.

For more information on exactly which of these 40 pins are used, please observe the following diagram. Furthermore, this circuit diagram includes wires and a potentiometer (pot) installation, the purpose of which is explained below.



A potentiometer, or variable resistor, is a device that, when turned, applies varying levels of resistance within a circuit. Examples of everyday
potentiometers include thermostat controls, lighting “dimmer” switches, and so forth. The potentiometers within the USBLCD Card's circuit is implemented so that you can easily control both LCD contrast and LCD back-lighting.

This circuit is very difficult to set up for many reasons. For example, very precise soldering skills are required (these pins are about 5mm away from each other). Secondly, every single one of the 14 or 16 wires must be inserted in the correct place; even just one incorrect wire will fail the whole circuit. Finally, if any of the power or ground pins are connected the wrong way round, a puff of smoke may rise from your card and/or LCD Unit – this can only mean one thing... And it 'ain't good.

So, as you can see, many issues can arise during construction of your USBLCD Card. If you study the diagrams very carefully you should face no
problems; but don't expect much in the form of assistance if something should go wrong.

Configuring the Software

Once the procedures above have been carried out, the LCD Unit should be ready to connect to your computer via USB Port. Simply plug the unit in using the supplied USB cable and the familiar USB recognition sound should ring through Windows.

The next step in the set-up process involves no hardware; it is purely software-driven from here on. To allow the USBLCD Card to speak to your
computer, and vice-versa, we must install two software programs.

SIOC is a hardware interfacing system developed by Opencockpits. It works entirely off event-driven scripting that has to be written by the user (or downloaded from another user of SIOC). Event-driven means that nothing will happen in SIOC unless an “event” happens. This event can be anything from an autopilot switch being toggled off, to a real-life hardware pushbutton being closed.

IOCLCD_config.exe is a friendly interface that allows the user to design and configure “virtual displays”, before transposing them using an internal application (IOCLCD.exe) onto their real LCD display.

IOCLCD_config.exe

To configure our LCD display and to control exactly “what goes on” upon the crystal screen, we must use the program IOCLCD_config.exe, which can be downloaded from Opencockpits' website (see end of review for useful links).

Once downloaded, a folder should have been installed that contains two vital programs, one of which is IOCLCD_config.exe; the other being IOCLCD.exe, which we will use later.

After opening the folder, double clicking on the IOCLCD_config.exe application icon should bring up the following interface:

It is important to note a few vital parts of this interface. The “Files” and “About” drop-down options will allow the user to open, save or view LCD files, and will advise on which version of the program the user is running, respectively. Furthermore, note the four identical “virtual LCD” screens, labelled 0-3. Since these are identical, we will only look at one in close-detail. The exacting logic can be applied for the other three displays.



Each individual component of this virtual display carries a different function.

Please observe this labelled diagram, with annotated explanations in the following paragraph.



  • Blank Text Cell - These are green boxes which, when double clicked, come up with the following, simple interface: -->>

  • Simply enter your desired single character (as each cell can only hold one character). Entering multiple characters will still work, however the succeeding text will “fill in” the cells after the one you have chosen.

  • Filled Text Cell – The result of following the above instructions.

  • Variable Controls – This is any number between 0-9999. It doesn't matter which number you choose. The reason this number must be filled in is so that we can reference to it later in our SIOC programming.

  • Size and depth of LCD Display – Self explanatory. Select the size of your physical LCD Display here.

  • Selected Virtual Display (0-3) – For each physical LCD unit, we can create four unique virtual displays that we can alternate between. For
    example, you may wish to have one display stating your fuel load, whilst another stating your exhaust gas temperatures. As such, multiple
    virtual displays must be created. To create multiple displays, use the drop-down list to select a new display number.

  • Once you have made your LCD “virtual” displays, you can save your file(s) as a .lcd file using the “File” menu.

    I found this interface to be very powerful and flexible, and although it may require a few minutes of getting accustomed to, is quite easy to use.

    “Yellow Cells” and SIOC

    <NOTE: This section is more advanced that the previous paragraphs. If you just wish to get a basic display upon your LCD display, you may not wish to read this section. It is, however, recommended reading if you wish to switch between LCD displays, have real-time flight-simulator offsets running, and have integrated hard-ware switches linked to your display.>

    Yellow cells, which can be found within the aforementioned IOCLCD_config.exe program (see above), are specialist characters that hold a
    numeric value. This numeric value is produced by reading “FSUIPC Offsets” through the SIOC program.

    FSUIPC, a program designed by Pete Dowson, must be installed prior to using yellow cells. This program is available for free, but a registered version with more features can be purchase if necessary. SIOC only requires you to have the un-registered free version. For more information, please see the download links section at the end of this review.

    FSUIPC Offsets, are, as the name suggests, offsets of FS2004/FSX information. SIOC reads these offsets and will then send the values to, in our
    case, and LCD Display. Offsets exist for almost everything within FSX. There a literally thousands of offsets, from airspeed and altitude offsets, to weather control and damage -report offsets.

    To create a yellow cell linked Offset, we will once again open up IOCLCD_config.exe. We will follow the same procedure as if we were going to
    enter in a text character, however instead of typing letters we will instead enter in a four digit FSUIPC Offset.

    Once again, take a look at the text interface, which is opened up when clicking on a blank green cell. We will ignore the box which says “text”. This time, we are interested in the lower two boxes, named “ID” and “Length”.

      ID – This is the variable number linked to the four-digit FSUIPC code. You can find our what offset applies to which code through numerous methods, such as using FSInterrogator (free), or trawling through the extensive FSUIPC documentation. In this example, we will use the Indicated Airspeed Offset, $02BC (we put a dollar sign in-front because this is how SIOC understands offsets). In our SIOC programming, we would make a statement linking offset $02BC to any number between 0-9999. We would then type this number into the “ID” box, and then enter a length (See below).

    Length – This is literally the length of the offset. Here we put how long the offset number is going to be. Of course, especially when working with data such as speed, there are infinite possibilities (because all aircraft travel at different speeds). For the length, we will put the maximum speed of the aircraft in knots. So, for example, if we are using a Boeing 767-300, we would enter “3” as the length, because the maximum speed is 493 Knots (a three digit number).

    Once IOCLCD_config.exe has accepted your offset number and length, three yellow cells will appear in and after the cell you double clicked on, looking like this:



    You may have noticed that both the whole virtual LCD display and the cell(s) you entered an offset ID for have a variable number between 0-9999. This is correct, meaning that you will need two different numbers at least, more if you create multiple yellow cell offsets.

    So, now we have learned how to implement working FSUIPC Offsets, and how to use text within IOCLCD_config.exe for our LCD Display. As previously mentioned, the interface is fantastic, but try to do a small amount of research before using.

    The penultimate step to getting our LCD Display fully working and interfaced to FSX/FS2004, is to produce a SIOC script. This particular obstacle is about as difficult as configuring the IOCLCD_config.exe program. Luckily, whilst complicated, this step is rather short.

    Firstly, we must start the application of Microsoft's default “Notepad” program. This is the basis for ALL SIOC programming.

    Once a clear text document has been established, we can start to implement our programming. Please see this labelled diagram, which incorporates the Yellow Cell FSUIPC Offsets explained above. This diagram summarizes everything we have covered.

    Some things to note are:

    • (Text Document) The variable number in the first declaration, “NameLCD”, is Var 1. This is because we called our LCD Display Var 1 in the IOCLCD_config.exe program. This line simply tells SIOC we have an LCD display connected.
    • (Text Document) Variable 2 just tells SIOC we are using Offset $07BC, the FSUIPC Offset for Speed.
    • (Text Document) Variable 3 is the final, calculated value that we will use for our LCD Display.
    • (IOCLCD_config program) Three yellow FSUIPC Offset linked yellow cells have been used, along with some text.
    • (IOCLCD_config program) The LCD is called Variable 1.
    That is everything one needs to know regarding the functionality of the Opencockpits USBLCD Card. All that's left to do is compile your text
    document in SIOC, and then run it along with your desired simulator

    Reliability and Construction

    I wouldn't have included this section within this review unless I had put the Card through the ultimate durability test.

    One evening, after happily pouring a glass of Pepsi's finest MAX cola, I made my way upstairs and placed the beverage upon my desk. Or so I thought.

    It wasn't until my USBLCD Card was drenched in sugar-free-carbonated-cola that I realised I had dropped my glass. After succumbing to the ever true realisation that I would have to purchase a new one, I decided just to test the card in my PC.

    To my amazement, the card functioned normally with no problems. With the exception of a few false USB-connection indications, my unit functioned normally within seconds.

    The magical hands of Manuel Vèlez and team have managed to engineer a card that not only works brilliantly, but have designed a circuit that seems to be very durable.

    Don't try this at home!

    Software-wise, SIOC and IOCLCD.exe seem to work together seamlessly. A few times, however, I experienced a seemingly rare glitch where a few
    characters were not written to my LCD display. I'm not quite sure what caused this, but this is a rare and insignificant problem anyway.

    Connections

    I have previously written a review for another Opencockpits Card, the USBServos Card. In this review I criticised the fact that the power pins were difficult to connect to, and were prone to breaking due to their fragility.

    Thankfully with this product, Opencockpits have pre-connected the power pins to the relevant circuit positions. This saves not only time on the
    customers' behalf, but also money should the pins have snapped due to metal fatigue. The pins have been completely shielded, soldered and cut to size.

    The 40-pin IDC connector is supplied with a fully-expanded four port connector cable, allowing you to gain maximum potential from your card
    without having to purchase a cable yourself.

    Personally, I think that Opencockpits have been rather generous; as these cables can cost around £3-£5 each, and they are being supplied free of
    charge with the card.

    Further adding to this seemingly increasing stack of generosity, Opencockpits have even given each customer a “B Style” USB Cable. Again, these can cost upwards of around £5, so it's quite surprising to see that this too has been included.

    Value for Money

    Taking into consideration that four individual LCDs can be connected per USBLCD Card, and that all interfacing and scripting software is free, the
    Opencockpits Card represents outstanding value for money.

    Its originality also boasts further monetary benefits. There is nothing quite like this product anywhere on the market. Whilst it is true other interfacing systems do exist, I have yet to come across one that provides support for LCD displays.

    Documentation

    If there are any major issues with the product, documentation is one that sticks out like a sore thumb.

    Most of the information contained within this review was gleaned through hours, and often days of extensive research. This is because I simply could not understand the documentation which sadly doesn't contain near enough information.

    For example, Opencockpits state that the “power” pins, pins 15 and 16, were arranged in a 5V (15) and GND (16) arrangement. Whilst this is true for some LCD displays, a large amount of LCDs, including my own, have the pins inverted. This is extremely poor practice as if one were to confuse these two wires the cost could literally blow the LCD right out of your hands.

    Furthermore, some of the instructional diagrams have wires missing, which can only be made out after printing the document off and tracing over using a pencil.

    Unfortunately, some of the sentences are difficult to understand linguistically, which, in the end, is probably down to translation error.

    I can only assume that for beginners to IOCards, this documentation will be very difficult to decipher.

    Conclusion

    The Opencockpits USBLCD Card is an affordable, reliable and very flexible option for cockpit builders wishing to implement a display into their cockpit.

    The card's acceptance towards such a wide range of HD44780 LCD displays also makes it perfect if you're using a non-standard unit.

    Not keeping in line with the rest of the product, the documentation falls far, far too short of the acceptable standard and will most likely make the already difficult to construct electronic circuit harder to understand.

    SIOC programming and the IOCLCD_config.exe allows the user to literally have control over everything, weather it be FS2004 or FSX driven.
    Outstanding functionality and compatibility make the USBLCD Card the “must-have” cockpit interface this Christmas.



    Verdict


    Pros:

    • Compatible with almost all HD44780 displays
    • Very flexible
    • Reliable
    • Power pins pre-wired before shipment
    • Support for four LCDs per card
    • Value for money
    Cons:
    • Poor Documentation
    My Score?   9/10


    Jack Whaley-Baldwin
    Review machine Spec:
    Core i7 920 OC @ 3.8 Ghz | 6Gb Tri-Channel DDR3 Ram |GTX285 Graphics |Windows 7 64bit Home Premium