Bookmark and Share

Opencockpits 7 Seg Displays Card
Reviewed by Jack Whaley-Baldwin
February 2011

Introduction
7-Segment displays can be seen almost anywhere on a day-to-day basis. Calculators, digital clocks, car thermometer displays, DVD/Video players and watches are just some examples of devices utilising segmented displays.

7-Segment Displays are named so because they are literally built up from seven individual segments. These segments can be lit up to contort the display into various letters and numbers. For example, if all the segments are illuminated, the number “8” will show. Please see the diagram below for more clarification.

Opencockpits, a Spanish Hardware manufacturer and distributor, have allowed 7-Segment displays to be used readily within your very own computer. They have even provided the option to use these displays with your home flight simulator; whether that be FS2004, FSX or X-Plane.

The Opencockpits Displays Card has been designed to control up to 16 7-Segment display units and interface them to a computer for use with Flight Simulator. This Card allows users to fully manage segmented displays which feature so commonly in modern aircraft cockpits.

7-Segment displays are connected to the card via an electronic circuit, which can be simplified if you purchase some Opencockpits specialised 7-Segment display PCBs (Printed Circuit Boards). These boards allow for a much simpler and more efficient connection to the Displays Card.

Product Information and Purchasing
This product can be purchased from Opencockpits or The Aviation Megastore for 33 Euros, plus additional VAT and Shipping charges where applicable.

Judging upon personal preference only, it is cheaper to order the IOCards series of products directly from Opencockpits. Aviation Megastore tend to overprice on shipping, and also charge a 5% fee upon all products purchased.

Please note, the Displays Card is NOT a standalone product. Before purchase, one must own and have installed a fully-working Master Card, also available from Opencockpits for around 55 Euros. It would be fair so say, therefore, that the Displays Card actually “costs” around 90 Euros, because it is a prerequisite to have a Master Card installed.

The product is advertised as boasting the following features:

  • Complete control of 16 7-Segment Display Units
  • Eight-Cable connection to the whole group of displays
  • Up to four Displays Cards can be connected to one Master Card
  • Completely finished, tested, and ready to use
  • Able to control brightness of the 7-Segment displays through the freely available SIOC scripting software.

    First Impressions
    After opening the box, I discovered that this particular interfacing card seems much simpler than the other cards available from Opencockpits range. The connecting pins that link between the displays and card are few, and the card seems very clearly subdivided into easy-to-understand sections.

    The classic 40-pin IDC/IDE connector present in 90% of Opencockpits' products makes a reappearance, however this time represents a much simpler purpose. The IDC connector simply needs to plug straight into the Master Card through use of a ribbon cable; no soldering or wiring required! Once plugged into the Master Card, it should work straight away. See, I told you it was simple!

    One interesting thing I noted was a series of jumper pins located to the top-left of the card. Jumper Pins are literally pairs of metallic pins that protrude straight from the card that have a “jacket” over them.

    This jacket can be “jumped” in-between to select various configurations. In this product's case, it selects between and identifies which card you are using (due to the fact that one can have up to four display cards connected to one PC, it is very important to distinguish between them).


    Setting Up

    In comparison with other Opencockpits Cards, such as the USBLCD Card, setting up is a breeze.

    Connection to the master card is done directly through an IDC Cable, and attaching 7-Segment Displays to the card is simply a matter of basic one-on-one wiring.
    To start with, it may be easier to provide a diagram of how the displays card connects to my PC.
      As you can see, the card follows a daisy-chain pattern to connect to your PC. The beauty of the Displays Card is that once it is connected to your PC, absolutely no software is required to install the product.
    Unfortunately, Opencockpits haven't quite developed a telepathic interfacing system just yet, which means the user will have to wire his/her card to his/her displays.

    At this point, there are two options. 7-Segment displays can be purchased globally from many online stores and local electronic shops. However, when purchased, you will literally receive just a 7-Segment display with several pins attached.

    Opencockpits have brought this a stage further. Available from their retail shop, specialised 7-Segment display units can be purchased which have already been professionally mounted onto a printed circuit board. This not only reduces the time invested in soldering the displays, but also makes to process much easier and much less intricate.

    The “pre-drilled” Opencockpits boards are also a godsend if you plan on using more than one 7-Segment display. This is because they are already slotted into a PCB and connected together through the board's copper tracks

    Alternatively, one would have to connect each individual 7-Segment display to one another by oneself.
    Opencockpits kindly supplied their printed circuit board 7-Segment displays along with the Displays Card, meaning that I did not have the misfortune of having to obtain and connect my own 7-Segment displays. Luckily, Opencockpits support both; wiring diagrams and instructions are provided both for those who purchased their own displays and for those who used Opencockpits segmented modules.

    Before connecting your display, we must ensure that the jumper pin (see above) is In the correct slot. If this is the first displays card you have purchased, then there will be no need to adjust anything, as it will already be in the correct position. T find out which position is correct for your card, please refer to the Opencockpits manual.

    I am very impressed that Opencockpits have chosen the jumper pin system to distinguish between multiple cards. Usually, these types of products require you to solder a very specific wire to a particular pin upon the master card; very messy and difficult to do. The jumper pin system is effort-free and requires no soldering, wiring or equipment.

    To wire our display, we must refer to the Opencockpits manual circuit diagrams.

     

    Once wired, we must test the card through use of Opencockpits freeware software, available from the “downloads” section of their website.

    Testing the Card
    The application controlador.exe, which comes bundled with the installation of SIOC v3.71 (B1), is the main point of communications for most of Opencockpits Cards.

    Using this application we can control and test our constructed 7-Segment Display array.

    To start the application, navigate to the location of controlador.exe (located in the main SIOC folder), and simply double click on the green icon. This will bring up the following GUI:

    At first, the Controlador program may seem overwhelming. It is a powerful testing utility and can be used to control many things, not just 7-Segment displays.

    However, for the purposes of this review, we will be concentrating on just four, click-able buttons.

    Before we can test anything, we must click on the “Start” button which resides in the lower-right corner of the program. Once clicked, the application will come to life and offer all of its features.

    Once started, there are two options in regards to testing the card. The first, and simplest, option is to click on the “ALL ON” button. This will activate all available outputs and turn everything on. This includes any LEDs you may have connected to your Master Card.

    If “ALL ON” is selected, all 7-Segment Displays will be written to with an “8 Digit”.
    When this test is activated, my 7-Segment display units look like this:
     
     

    To de-activate all outputs, and to turn the 7-Segment displays off, simply click on the “RESET” button. This will kill anything that is turned on and linked to the Master Card.

    Alternatively, a more rigorous testing routine is available. Clicking on the “TEST” button starts a special routine in which outputs are activated in a sequential order.

    The 7-Segment displays will, one-by-one, alternate through numbers 0-8 before finishing and remaining on number 9. Clicking the test button also activates a “Counter” which will begin after your displays have been written with a number 9.

    Similarly to the “ALL ON” function, the test sequence can be terminated by clicking the “RESET” button.

    It is recommended that your card and 7-Segment displays be able to perform the above tasks before beginning any programming using SIOC.

    I always find the controlador.exe program a very useful and detailed testing utility. I don't just use it for my 7-Segment displays; it is used throughout my cockpit to test everything from CDU execute lights to pressure warning annunciators on my overhead panel.
     

    Programming with SIOC
    <Please note, this portion of the review contains technical references and practices. As a result, you may wish to omit this section of the review. For more information, please visit Opencockpits' website, or download the SIOC manual; available at the end of this review.>

    Now that we have tested both our card and displays, it is time to approach the advanced yet incredible world of SIOC scripting.

    SIOC is the software interfacing program for all of Opencockpits' products. It is similar to the controlador.exe program (read above), however, instead of receiving commands directly from you, the user can tell SIOC to transmit and/or receive specific data from Flight Simulator (FS2004/FSX/X-Plane). To use SIOC, a copy of FSUIPC (registered or unregistered) is required.

    SIOC can be found in the same installation folder as the controlador.exe program (see above).

    To implement our 7-Segment displays into SIOC, we must write a few short lines of script or “code” as it is sometimes known. This script can be written in any text editing program, but notepad is preferred due to simplicity and accessibility.

    For testing purposes, I will demonstrate a simple script that will enable our 7-Segment displays to show the current Indicated Air Speed (IAS) of our aircraft in FSX.

    This is the test script I wrote in notepad:



    I have annotated each part of the script but I shall analyse them in more detail below. Please note, this section of the review is purposely over-detailed and some portions of the script literally look as simple as they seem.

    Also note, wherever there are two forward slashes (//), anything after the slashes is completely irrelevant and provides no contribution to the script. The two slashes are often used if an author wants to make notes on a particular “snippet” of script, as anything he/she types after the slashes will not make a difference in the script.

    “Var 2, name SPD_DP, Link IOCARD_DISPLAY, Digit 1 Numbers 5”

    This line tells SIOC that we have five 7-Segment Displays, beginning on “Digit 1”. “Digit 1” means that the first unit in the series of the five displays is wired to pin one on the card. NOTE: Pin one is NOT the first pin on the card. It is in-fact pin ZERO (Opencockpits interfacing cards start their numbering from zero, not one. This means that zero is the first, one is the second, and so on).
       
    Pin zero on my card is connected to an unrelated display, so I have ignored this and told SIOC to start from pin/digit one. I have also stated that I wish to use FIVE 7-Segment displays. This means that SIOC will display my Indicated Air Speed from FSX within digits 1-5.

    You may also notice the “Var 2” written at the start of the statement. “Var” is short for “Variable”, and a variable is required in every SIOC “declaration”. Variables are, as their name suggests, “things” that can vary (ie; be in one state or another). Everything in a cockpit is a variable. For example, a switch can be on or off. An annunciator can be illuminated or distinguished. A gauge can be pointing to one value or another value. This is why our displays are variables; they can be one number or another number.

    To declare a variable in SIOC, simply type “Var”, a space, then any number between 1 and 9999. It does not matter which one you choose, as long as it is not in use by other variable.

    The “name” part of the line (“SPD_DP”) is literally a name. It is advisable to give variables names so you can refer to them later in your script. It does not matter what you call them. Naming variables is, however, completely optional.

    “Link IOCARD_DISPLAY” tells SIOC that our variable is linked to an Opencockpits Displays Card.

    “Var 3, name IAS, Link FSUIPC_IN, Offset $02BC, Length 4”

    As we have already discussed the “Var” and “Name” sections of scripts, we shall move on to the phrase “Link FSUIPC_IN”.

    “Link FSUIPC_IN” is how to tell SIOC that we wish to read (extract data from) something from the FSUIPC program. This is of course correct as we wish to extract the data value of our aircraft's IAS. Similarly, “FSUIPC_OUT” means write to an Offset. We would use FSUIPC_OUT if we were interfacing something like an autopilot switch. However, since we wish to get an output working, FSUIPC_IN will suffice.

    Although we have told SIOC we wish to read data from FSUIPC, we have not specified which particular data. This is where we enter a four-digit code, or “Offset Number”.

    Offset Numbers can contain both numbers and letters. Each code is unique to each individual offset. Within FSUIPC, there are offsets for almost everything. Since we want our displays to hold current aircraft speed, we shall use Offset 02BC, which represents IAS. Please note, all references to airspeed within this review are in Knots.

    In SIOC, one must place a dollar symbol ($) before each and every offset code.

    “Length 4” tells SIOC that offset $02BC has a length of 4 bytes. Different offsets have different byte values. For example, offset $0BC8, representing an aircraft's parking brake position, has a length of 2 bytes.

    “L0 = DIV &IAS 128”

    This line is a calculation. When SIOC receives the airspeed data from FSUIPC, it is multiplied by 128. This is of course an inconvenience, as SIOC may interpret an aircraft going 75 Knots as 9600 Knots!

    To counter-act this, we simply divide the multiplied value by 128. This will give us our correct value. To do this, we use the “DIV” command, followed by the name of the variable in question (remember, we called the airspeed variable “IAS”). To refer to the airspeed variable, we type IAS preceded by an ampersand symbol (&IAS). The ampersand symbol must be written before each-and-every reference to a variable name.

    The “L0” at the start of the line is what we call an “Integer/Float Internal Variable”. Internal Variables temporarily hold the value of whatever they are assigned. Anything after the equals sign in a statement using an Internal Variable will represent it. These float variables do not have to be “L0”, they can also be “L1” or “L2”. For example:

    L0 = 159

    L0 will now equal 159, and we can recall L0 in another line of script, for example:

    &Cheese = L0 + 15

    The variable “Cheese” will now equal 174, because L0 (159) + 15 = 174.

    In our Displays script, L0 holds the value of our aircraft's airspeed divided by 128. Remember, airspeed must be divided by 128 before it can be used in SIOC, or else we will receive very adverse readings.

    Internal Variables are often used when more than one line of calculation is required. This is because SIOC cannot handle more than one calculation per single line, so we must “hand-down” the value from one line to another.

    Please note, the bracket above this line is very important. “Curly” brackets are always used to “execute” a command. Whenever we want something to happen in SIOC (for example, illuminating an LED), nothing will happen unless it is enclosed within a bracket. Whenever an event takes place within SIOC, it is the script within the brackets that is executed.

    “&SPD_DP = L0”

    This line is identical to the operation performed in the above paragraph. The only difference is, instead of telling L0 to equal something, we are telling something to equal L0 (a sort of backward logic).

    We tell the variable “SPD_DP” (remember, this is the name we gave to the 7-Segment display unit) to hold the value of L0. Since L0 is our calculated IAS value, the variable SPD_DP will show the perfect airspeed of the aircraft in Knots.

    Note the bracket below this line. It has an equal function and importance to the aforementioned opening bracket, however this time it closes the execution (hence anything between the brackets is executed).

    Compiling our SIOC Script

    Whilst our notepad version of our SIOC code is complete, it is useless unless we actually “compile” it.

    To compile our script, we will double click on the SIOC program icon. The following window should pop-up:

    People using the USBExpansion Card (which, as previously mentioned, is necessary if using a 21st Century USB-Equipped PC), should check that the entry “IDX = 0 – IOCard USB – Device = X” is present. Please note, number “X” is different for every user and depends on which USB port the card is plugged into.

    To continue with the compiling process, hit the “CONFIG” button. This will bring forth the following window:



    The area enclosed within the red box is unique to every user, and depends on which SIOC script you are running. Since I have a very large script which caters for half of my Boeing 767 cockpit, this area takes up over 1000 lines and contains many complex calculations. Since we are just configuring a simple 7-Segment display, we can completely ignore this area and just click the “FILE” button. This will make the following drop-down menu appear:
     

    After clicking on “Import TXT”, a file selection box will appear, requesting the location of our notepad 7-Segment Displays script.

    Since I saved my script to my desktop as file “Displays TEST”, I just navigate to my desktop and load the notepad file.

    After locating your file, click open. If the script has been successfully compiled, the following window will appear:

    However, if, for whatever reason, there is an error within your SIOC notepad file (maybe a spelling error, missing bracket, calculation problem, etc), the second window will appear. In this case, I have purposely spelt “&IAS” wrong, and instead written “&IEAS”.

    As you can see, SIOC has correctly identified my error. If this should happen, click OK, close SIOC, and re-check your notepad coding for anything that may be causing the problem. Assuming the file has compiled correctly, and the “OK” button has been clicked, SIOC will settle back to the following box:

    After confirming that the file has compiled successfully, click on “FILE” to access the drop down menu:

    This time, we shall click on “SAVE AS”. This will, yet again, bring forward another file selection box. Since we are saving this file as an exported SIOC file (file extension “.ssi”), we will navigate to the location of our main SIOC folder. On my PC, running Windows 7 64-Bit, it is located at:
    My Computer\C Drive\ Program Files (x86)\IOCards\SIOC. 

    The file name must be saved as “sioc” (.ssi). After naming the file, click on “SAVE” to confirm the process. A box may appear, asking you if you wish to overwrite this file. Click “YES”. After clicking “YES”, the entire process of making, compiling and running our SIOC script is complete.

    Decimal Point (DP) LEDs
    Most 7-Segment displays, especially the ones available from Opencockpits' shop, contain Decimal Point LEDs.

    DP LEDs are literally LEDs that form a small “dot” under each segment, acting as a decimal point. These are completely unnecessary for the operation of the card and getting numbers to display, however, they are vital if you wish to display something such as a radio frequency. This is because most frequencies come with an attached decimal, such as “115.29”, “109.22” or “120.20”. Note the position of these Decimal Points, highlighted here in red:
     

    To get these DPs working, we will actually have to bypass the displays card and connect it directly to an output of the master card, just like a normal LED.

    Unfortunately, the Opencockpits 7-Segment PCBs do not cater very well for this. The Decimal Point terminals are just “stuck through”, and are not connected to any copper trails on the card. In fact, to connect to the DPs, one must solder one's own wires from the decimal to the master card.

    Furthermore, I'm a little disappointed that there isn't much in the way of accommodating the Decimal Points. Actually having to connect the terminals to the master card is a bit of a pain; I always find it is much easier to keep everything “neat” and on just the one interfacing card. As such, it may have been a good idea to put a few LED outputs or similar onto the main PCB of the displays card.

    Theoretically, these small DPs would blow if we connected them to the master card, as it appears to give a continuous 5V output, way to high for such an application. However, the opening and closing of logic gates provides a pulsed voltage, which does not damage the DPs in any way.

    When connected to the master card, they can be treated identically to any normal LED. Both SIOC Software and the master card will see no difference between the DP LED and a normal one, so the user can test and script his/her LED normally.

    Controlling Brightness
    To control the brightness of any 7-Segment displays through the card, one must implement a few lines of special SIOC code within their script.

    Writing the value -999994 followed by digit N will set the brightness of the chosen display. This is where digit N is a number between 0 and 15, with 15 being the brightest possible value.

    Again, this is totally optional and I myself have not bothered using these settings at all.

    Documentation
    Manuals for the Displays card are available at the product page, found at www.opencockpits.com. These can be downloaded in PDF format.

    The documentation is largely informative. Guides for wiring, installing, and testing the card are all present within the 7 page manual.

    Diagrams are included to aid the sometimes tricky processes of circuitry and soldering. A fully annotated diagram can also be found; detailing the card's components.

    However, whilst the manual will provide the user with enough to “get going”, there are sections which are, quite frankly, very confusing. For example, the sentence:

    “Due to the operating mode of the card (multiplexed) the tension overloads in the Display's LEDs will never occur, because what these receive are tension pulses and not a continuous tension, avoiding any segment of the display to blow.”

    This paragraph left me bewildered. It was not until I found out that the Spanish word for “voltage” is “tension” that everything made sense. It is occasional errors like these which can lead to initial confusion, and, although they are easy to understand once you do a little “digging”, do not help in aiding the understanding of the already technical product.

    For those of you who wish to know, that paragraph actually refers to the pulsed output given to the DP LEDs (see above).

    I also found the paragraphs regarding SIOC scripting a little uninformative. For example, the section which explains how to assign brightness to a 7-Segment display, which just gave a short explanation and an example which did not help me understand the matter any further.

    Advanced scripting and Lekseecon
    Nico Kaan, a user of SIOC from the Netherlands, has developed a program called Lekseecon which silently runs in the background. It connects to SIOC via the IOCPSever installed with SIOC.

    This program works exclusively for the Level-D 767, and the upcoming Level-D 757 add-ons for FS2004 and FSX. It provides pre-defined variables and comes with a very, very detailed manual guiding you through each step.

    These pre-defined variables cover everything within the Level-D 767 add-on. Every switch, annunciator, lever and knob can be adjusted using Lekseecon, and similarly the state of each of these can be received from the program and transferred over to SIOC.

    Scripting in SIOC is much easier with Lekseecon, but is still fairly tricky and not really necessary to mention within this review. However, I have successfully utilised the Lekseecon program along with an advanced SIOC script to produce a rather outstanding result with the Opencockpits displays card.

    Opencockpits kindly supplied some 7-Segment display units, along with the card itself, for this review. These displays are being used in my cockpit to provide a variety of Boeing 767 overhead features, such as fuel loading and external temperature.

    However, I have already configured one 5-Unit 7-Segment display to hold the true value of the Left HF (High Frequency) Radio found on the upper-left area of the overhead panel, column two.

    Using Lekseecon, SIOC and an advanced SIOC script, I have managed to get my 7-Segment display to accurately and currently display the Left HF Unit Frequency in real-time.

    The script covers many important aspects. For example, when my Boeing 767 Batteries are turned off, the 7-Segment displays remain completely dead unless power is supplied to them. Furthermore, the script caters for a fully-functioning decimal point within the display.

    Also included within this script are support for rotary encoders and rotary switches (to tune and select between frequencies). This script was kindly produced by Nico Kaan and can be found within his Lekseecon installation.

    I am very impressed with the results of this script and the displays card. Please look below for photographs of the interfaced displays. The highlighted box in the top left corner is what I can see on my (simulated) Level-D 767 add-on in FSX.

    Conclusion
    The Opencockpits displays card is the definitive choice for those wishing to use 7-Segment displays within their cockpit. I have become to consider it a cockpit staple, as around 50% of cockpit displays are represented through 7-Segment units.

    It is very flexible and works flawlessly if using the provided SIOC software. The ability to control brightness further adds to the card's accessibility.

    The card is easier to set-up than other Opencockpits cards, but the documentation is a little off-putting at first. With a little translational tweaking and a bit more effort, the manual could achieve great things.

    I also think the cater does not cater very well for those wishing to use decimal points within their cockpit. Although I appreciate it seems easy to just connect the LEDs to a master card, this is a very fiddly process which can be difficult for those new to soldering.

    The card provides fantastic value for money at just 33 Euros + Shipping.

    Personally, this card is my joint favourite card, along with the Opencockpits USBServos Card. Although I must admit, the displays card is much easier to get working than the USBServos card.

    Overall, this is a brilliant product and, in future, I will not hesitate to purchase some more for my Boeing 767 Cockpit.

    Verdict

    Pros:

  • Great value for money
  • Innovative and easy to use jumper pin distinguishing technique
  • Very flexible
  • Testing software works perfectly
  • Ability to control brightness through software


  • Cons:

  • Not much is done to cater for 7-Segment display decimal points
  • Patchy documentation

  • Mutley's Hangar Score: 8.5/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