Wiring the Digit Display Controller

In this exercise we demonstrate how to wire up digits 0 thru 7. The same can be assumed for the other connectors for the rest of the digits.

Remember-- Ribbon cables have their #1 leads marked with a specific color, setting that particular wire apart from the others. Polarity is extremely important and improper wiring can seriously damage your EPIC circuitry! In this example I have marked the #1 lead with red coloring.

Too Complicated?

I'll be the first to admit~ wiring these displays will make you go cross-eyed before you're through. Although you CAN accomplish this task, CSI Cockpit Simulations makes quite a few products to simplify the wiring process.

Here's a look at a circuit card which makes wiring 7-seg displays a cinch:

You can wire up to five display units on a card, which is perfect for most cockpit applications. For fewer displays such as Heading or IAS displays, simply cut off what you don't need

Details:

The 32-Digit controller uses common ANODE displays, although if you have some spare inverter IC chips (74HCT04, 74LS04 or 7404) laying about, you can invert ALL the lines on the ribbon cable to use common cathode displays.

All segments for each digit are connected. For example, segment A on Digit 0 is wired to segment A on digit 1 and so on...
BE SURE to use current-limiting resistors as shown in the diagram, or you'll risk burning up some displays and possibly overheat the controller module!

Points to consider:

1. Use Common ANODE displays
2. When building displays for the NAV and COMM radios, it is best to hard-wire the Left-most number, in each case this will be a "1"
3. Wires 9-16 are connected to the ANODE for each display
4. USE CURRENT-LIMITING RESISTORS!
5. Use wires 19 and 20 to power your "Static" digits (With Current-limiting resistors!) ie: the leftmost "1" on any Comm/Nav radio.
6. Where possible, hard-wire the decimal point.

Programming the EPIC Display Controller

Let's start with the code... If you are using Peter Dowson's VXD and Gauge software (if not you SHOULD be! =) this should look very familiar...
    ;Used by EpicInfo.GAU
     #include EPICVXD.INC

    ;Define EPIC Card Modules
     #define FASTSCAN 0
     #define SLOWSCAN 1
     #define OUTPUT 2       ;The Display Controller is usually Module #2

Next we'll start working on a NAV radio. Here we're doing nothing more than assiging a "Name" to each display unit. Makes life easier! I Usually assign the numbers according to what digit that particular display unit is physically connected to. In this case NAV1_LO will start at physical digit 2, hence the #define statement.
    #define NAV1_HI     0
    #define NAV1_LO   2

Now we'll actually format the displays to conform to a typical NAV radio. NAV1_HI will start at physical digit 0 and take up 2 digits. See EPIC documentation for more info... explaining it here in detail would take pages. NAV1_LO will start at physical digit #2 (Since digits 0 and 1 are defined already...) and require 2 more digits. Don't worry about the rest of the line. It doesn't apply here.
    definedisplay(NAV1_HI, 2,   0, 2, 0,0,FALSE, 0b00000000)
    definedisplay(NAV1_LO, 2, 2, 2, 0,0,FALSE, 0b00000000)

Here is where the routine UPDATE_NAV is called whenever a frequency change is made.
  
DefinePH(2, Update_NAV, 0,0,0,0) ;NAV1 Setting

Finally... the routine to update the NAV radio displays. Because I am using Peter Dowson's Gauge package, it is very short and to the point. This routine is called every time Pigeonhole 2 & 3 change. (NAV 1 pigeonholes. See Peter Dowson's documentation for more info.) 
    :Update_NAV{
        #expand getPH8(NAV1_LO, 0x0002)
        #expand getPH8(NAV1_HI, 0x0102)
        setdisplay(NAV1LO, NAV1_LO)
        setdisplay(NAV1HI, NAV1_HI)
        }

 

***** End of Article *****