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 *****